本人在开发过程中,对接文档要求非空参数需要按照ACCII码表排序,然后才能传递,整理了下 !
方法代码:
public static void sortStringList(List<String> list) {
List<char[]> charList = new ArrayList<>();
// 1.把list数组中的每个字符串 转为字符数组
for (int i = 0; i < list.size(); i++) {
charList.add(list.get(i).toCharArray());
}
List<char[]> charObjectList = charList;
// 2.循环数组listChar取出每一个进行冒泡排序比较
for (int a = 0; a < charList.size(); a++) {
for (int b = 0; b < charList.size(); b++) {
char[] charA = charList.get(a);
char[] charB = charList.get(b);
// 相同的就不需要比较
if (charA != charB) {
int size = 0;
// 可能会存在前面都一样的字符所有取字符数组长度小的 来进行循环比较 字符的ascll
if (charA.length > charB.length) {
size = charB.length;
} else {
size = charA.length;
}
// 循环比较赋值
for (int c = 0; c < size; c++) {
if ((int) charA[c] > (int) charB[c]) {
if (a < b) {
charObjectList.set(b, charA);
charObjectList.set(a, charB);
break;
}
} else if ((int) charA[c] == (int) charB[c]) {
} else if ((int) charA[c] < (int) charB[c]) {
break;
}
}
}
}
}
for (char[] cs : charObjectList) {
System.out.println(String.valueOf(cs));
}
}
测试代码:
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("payerIdNumber");
list.add("payerName");
/* 省略其他字符串 */
sortStringList(list);
}
每日的积累就是进步的阶梯!