2011-10-04 273 views
-5

我想將Q4,Q7,Q2,Q1排序爲Q1,Q2,Q4,Q7。如何對java中的字母數字字符進行排序?

謝謝。

+5

你的例子可以很好地排序字符串的自然順序。但是,大概你可以在Q7之後得到「Q10」? –

+0

你能舉例說明如何對此進行排序嗎? – Vasu

+0

條目的格式是什麼?它是單個非數字後面跟單個數字/多個數字嗎?訂單優先順序是什麼?首先是字符,然後是數字? –

回答

2

您可以使用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

字符串實現媲美。根據你持有它們的方式,即使用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); 

    } 

} 

沒有測試過,並假設輸入字符串形式QN具有n爲int。但問題不是很清楚。

相關問題