private static int arrangeStringsAccordingToAscii(String firstText, String lastText) {
char[] firstChars = firstText.toCharArray();
char[] lastChars = lastText.toCharArray();
int min = Math.min(firstChars.length, lastChars.length);
for (int index = 0; index < min; index++) {
if (firstChars[index] > lastChars[index]) {
return 1;
} else if (firstChars[index] < lastChars[index]) {
return -1;
}
}
return firstChars.length - lastChars.length;
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("ZLRab");
list.add("ZLRab1");
list.add("ZLRab1a");
list.add("zlrabs");
list.add("zlrab");
list.add("中国人民共和国");
list.add("中国");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return arrangeStringsAccordingToAscii(o1, o2);
}
});
System.out.println(Arrays.toString(list.toArray()));
}