2012-11-09 4 views
2

가능한 중복 :
Sorting arraylist in Android in alphabetical order (case insensitive)안드로이드에서 Array의 대문자와 소문자를 올바르게 정렬하는 방법은 무엇입니까?

안녕하세요 모두 내가 정렬의 작은 문제가있다.

String 유형의 컬렉션 하나를 가져옵니다. 나는 그것이 나에게 내가 여기

를 기다리고 있었다 잘못된 결과를주고있다 정렬하고 때하는 내 코드입니다 :

List <String> caps = new ArrayList<String>(); 
caps.add("Alpha"); 
caps.add("Beta"); 
caps.add("alpha1"); 
caps.add("Delta"); 
caps.add("theta"); 

Collections.sort(caps); 

그것은 같은 정렬되어

알파 베타 델타 알파 1 세타.

여기서 모든 유형의 문자열을 대문자/소문자로 사용할 수 있습니다. 그러나 소문자 단어는 나중에 나옵니다.

알파 알파 1 베타 델타 세타

쉬운 내장 방법이 거기에 있습니다 :

나는 밖으로 같이 넣어 줄까?

답변

10

Collections.sort();을 사용하면 주문형 비교기를 전달할 수 있습니다. 대문자와 소문자를 구별하지 않는 경우는 String 클래스는 CASE_INSENSITIVE_ORDER라고하는 정적 인 최종 비교기를 제공합니다. 따라서 귀하의 경우 모두가 필요한

은 다음과 같습니다

Collections.sort(caps, String.CASE_INSENSITIVE_ORDER);

1

사용하십시오 Comparator :

Collections.sort(caps, new Comparator<String>{ 
    public int compare(String s1, String s2){ 
     return s1.toLowerCase().compareTo(s2.toLowerCase()); 
    } 
}); 
+1

사용'compareToIgnoreCase' 대신이 답변. –

관련 문제