2013-07-14 17 views
0

我想複製下面的簡單方法在Java中:複製.NET排序在Java中

string[] a = {"u1=1","u2=2","u11=3"}; 
Array.Sort(a); 
Console.WriteLine(String.Join(" ", a)); 

輸出:

U1 = 1個U11 = 3 U2 = 2

這個天真的Java翻譯使用另一個字符串比較:

String[] a = {"u1=1", "u2=2", "u11=3"}; 
Arrays.sort(a); 
System.out.println(Arrays.toString(a)); 

輸出:

[U11 = 3,U1 = 1,U 2 = 2]

我意識到,.NET String.Compare()方法取決於本地化設置在機器上,但如何可以重現.NET在使用Java的標準英文語言環境中進行排序?

回答

3

這應該工作:

String[] a = {"u1=1", "u2=2", "u11=3"}; 
Arrays.sort(a, Collator.getInstance(Locale.ENGLISH)); 
System.out.println(Arrays.toString(a)); 

輸出:

[U1 = 1,U11 = 3,U2 = 2]

+0

五言我想通答案列於我在發佈問題後4分鐘。相關問題[語言排序(德語)與Java](http://stackoverflow.com/questions/12778841/linguistic-sorting-german-with-java?rq=1)通過指向Collat​​or類幫助我。 –