У меня проблема с сортировкой строк, которые включают целые числа. Если я использую следующий код я получаю сортировки, как: 1some, 2some, 20some, 21some, 3 some, некоторыеКак сортировать буквенно-цифровую строку
Однако я хочу это сортируется как: 1some, 2some, 3 some, 20some, 21some, некоторые
Как я могу это сделать?
Спасибо!
Collections.sort(selectedNodes,
new Comparator<DefaultMutableTreeNode>() {
@Override
public int compare(DefaultMutableTreeNode o1,
DefaultMutableTreeNode o2) {
return o1.getUserObject().toString()
.compareTo(o2.getUserObject().toString());
}
});
вы должны разделить строки в двух первых; другая часть является целой частью, а другая - частью строки. затем сначала сравните целые числа - если целые числа не равны, строка, которая должна появиться первой, - это та, которая имеет меньшую целую часть. Если они равны, строка, которая должна отображаться первой, - это строка со * строкой в алфавитном порядке. –
Разделите целое число из строки и сравните его перед сравнением остальной части строки. Если он всегда начинается с уникальных целых чисел, вы можете даже пропустить остальную часть строки. – Magnilex
Строка может быть в любом формате - например: other 1, other 2, 1 some 2 other 3, ... Я думаю, что было бы сложно разбить строку и сравнить только целую часть. – Thaven