2011-10-04 6 views
-5

Q4, Q7, Q2, Q1을 Q1, Q2, Q4, Q7로 정렬하고 싶습니다.Java에서 영숫자를 정렬하는 방법은 무엇입니까?

감사합니다.

+5

예를 들어 문자열의 자연 순서로 정렬하는 것이 좋을 것입니다. 그러나 아마도 "Q10"을 "Q7"다음에 가져올 수 있습니까? –

+0

어떻게 정렬 할 수 있습니까? – Vasu

+0

항목의 형식은 무엇입니까? 그것은 하나의 숫자가 아닌 하나의 숫자가 아닌 하나의 숫자입니까? 주문 우선 순위 란 무엇입니까? 문자 먼저, 그 다음 숫자? –

답변

2

String 비교기를 사용하여 Collections.Sort 메서드를 사용하거나 동일한 비교기를 작성할 수 있습니다.

샘플

String [] str = new String[]{"Q4","Q7","Q2","Q1"}; 
     List<String> list = Arrays.asList(str); 

     Collections.sort(list, String.CASE_INSENSITIVE_ORDER); 
     System.out.println(list); 
0

문자열 Comparable를 구현합니다. List 또는 배열을 사용하는 방법에 따라 Collections.sort() 및 Arrays.sort()를 각각 사용할 수 있습니다.

0

당신은 즉, 자신의 비교기 구현해야합니다

public class ComparatorSO implements Comparator<String>{ 

    @Override 
    public int compare(String o1, String o2) { 
     Integer i1 = Integer.parseInt(o1.substring(1)); 
     Integer i2 = Integer.parseInt(o2.substring(1)); 
     return i1.compareTo(i2); 

    } 

} 

를 테스트하지 않음을, 입력 문자열이 n 개의 INT와 형태 QN의 것을 가정. 질문은 아주 명확하지 않다.

관련 문제