创建一个长度是8的字符串数组
使用8个长度是5的随机字符串初始化这个数组
对这个数组进行排序,按照每个字符串的首字母排序(无视大小写)
注1: 不能使用Arrays.sort() 要自己写
注2: 无视大小写,即 Axxxx 和 axxxxx 没有先后顺序
package character;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class TestChar {
public static void main(String[] args) {
// for (int i = 0; i < 30; i++) {
// chara();
// }
// System.out.println(comp(67, 'A'));
array();
}
// 输出一个长度为5的随机字符串,数字、大写字母、小写字母
public static String chara() {
StringBuffer ss = new StringBuffer();
for (int i = 0; i < 5; i++) {
int k = new Random().nextInt(62);
if (k < 10) {
ss.append((char) (k + 48));
} else if (k < 36) {
ss.append((char) (k + 55));
} else {
ss.append((char) (k + 61));
}
}
return ss.toString();
}
/*
* 创建一个长度是8的字符串数组,使用8个长度是5的随机字符串初始化这个数组 对这个数组进行排序,按照每个字符串的首字母排序(无视大小写)
*/
public static void array() {
String[] arr = new String[8];
for (int i = 0; i < arr.length; i++) {
arr[i] = chara();
}
for (int i = 0; i < arr.length - 1; i++) {
for (int j = i + 1; j < arr.length; j++) {
// 执行数组元素比较
for (int k = 0; k < arr[i].length(); k++) {
char m = arr[i].charAt(k);
char n = arr[j].charAt(k);
if (Character.isUpperCase(m)) {
m = Character.toLowerCase(m);
}
if (Character.isUpperCase(n)) {
n = Character.toLowerCase(n);
}
// 如果m<n,则直接结束比较
if (m < n) {
break;
}
// 若m>n,则执行调换并且结束比较,否则说明m=n则需要k++并继续比较
else if (m > n) {
String s = arr[i];
arr[i] = arr[j];
arr[j] = s;
break;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
}