Символы за пределами Z в алфавитном порядке
Хорошо, это всего лишь быстрый вопрос, так как я не могу найти ответ сам. В списках строк, которые расположены в алфавитном порядке, используя Collections.sort
а также compareTo
функции, какой последний доступный символ (кроме "ZZZ")?
Я хотел бы знать символы за пределами "ZZZ" в compareTo
Порядок, из любопытства.
2 ответа
Цитата Хольгера:
Вы сравниваете строки, а не символы. Последняя строка, то есть строка, для которой не существует "большей" строки, является строкой, состоящей из 2147483647 повторений символа "\uFFFF". Вы не хотите использовать это...
Я считаю это правильным ответом на мой вопрос.
PS: для тех, кто интересуется, это был код в оригинальном вопросе:
Причина, по которой я задал вопрос:
Collections.sort(myObjectList, new Comparator<MyObject>(){
@Override
public int compare(MyObject o1, MyObject o2){
String name1 = o1.getName();
String name2 = o2.getName();
if(name1 == null)
name1 = "ZZZ"; // <- Last String in compareTo's order
if(name2 == null)
name2 = "ZZZ"; // <- Last String in compareTo's order
return name1.compareTo(name2);
}
});
Вместо этого изменилось следующее, чтобы решить мою проблему:
Collections.sort(myObjectList, new Comparator<MyObject>(){
@Override
public int compare(MyObject o1, MyObject o2){
String name1 = o1.getName();
String name2 = o2.getName();
if(name1 == null && name2 == null)
return 0;
if(name1 == null) // && name2 != null
return 10;
if(name2 == null) // && name1 != null
return -10;
else // name1 != null && name2 != null
return name1.compareTo(name2);
}
});
В Unicode последний символ в алфавите z
(В нижнем регистре). Первый символ, который следует {