2013-04-04 3 views
2

У меня есть List из довольно долго Strings:Сортировка списка по расколоть

test:test:test:test:test:test:test:ABC:test:test:test:test:test:test: 
test:test:test:test:test:test:test:DEF:test:test:test:test:test:test: 
test:test:test:test:test:test:test:GHI:test:test:test:test:test:test: 
test:test:test:test:test:test:test:JKL:test:test:test:test:test:test: 
test:test:test:test:test:test:test:MNO:test:test:test:test:test:test: 

Пусть все тесты, как отличаются друг от друга. Я хотел бы отсортировать эти строки на основе того конкретного места, где хранятся заглавные буквы.

for (int i = 0; i < aList.size(); i++) { 
     System.out.println(list.get(i).toString().split(":")[7]); 
    } 

ответ

9

Использование Collections.sort() и предоставлять собственные Comparator налагать свои желательные критерии заказа.

Вот пример (проверка на нули и неожиданные форматы опущены):

List<String> myList; 
Collections.sort(myList, new Comparator<String>(){ 
    @Override 
    public int compare(String o1, String o2) { 
     String text1 = o1.split(":")[7]; 
     String text2 = o2.split(":")[7]; 
     return text1.compareTo(text2); 
    } 
}); 
+0

Спасибо Хави. Очень признателен. – wervdon

+0

Рад, что помогло :) –

Смежные вопросы