2012-10-24 197 views
1

我需要排序像下面的字符串數組的一個子字符串排序的字符串數組,由字符的字符串:爪哇由字符

[0] = "gtrd3455"; 
[1] = "wsft885"; 
[2] = "ltzy96545"; 
[3] = "scry5558"; 
[4] = "lopa475"; 

我需要通過下面的「3455,885進行排序, 96545,5558,475「 我需要對數組的前4個字符進行子串排序,並將其排序並顯示回像下面輸出的數組。

輸出應該是這樣的一個數組:我怎樣才能在Java中做到這一點

[0] = "ltzy96545"; 
[1] = "scry5558"; 
[2] = "gtrd3455"; 
[3] = "wsft885"; 
[4] = "lopa475"; 

實例?

回答

5

您可以使用Comparator,並使用Array#sort方法吧,根據你的需要對它進行排序: -

String[] yourArray = new String[3]; 
yourArray[0] = "gtrd3455"; 
yourArray[1] = "ltzy96545"; 
yourArray[2] = "lopa475"; 

Arrays.sort(yourArray, new Comparator<String>() { 
    public int compare(String str1, String str2) { 
     String substr1 = str1.substring(4); 
     String substr2 = str2.substring(4); 

     return Integer.valueOf(substr2).compareTo(Integer.valueOf(substr1)); 
    } 
}); 

System.out.println(Arrays.toString(yourArray)); 

輸出: -

[ltzy96545, gtrd3455, lopa475] 
+0

@NullUserException。你也錯過了一個有效的錯誤。我在Integer.parseInt上使用了compareTo。它返回原始的int。 ;) –

+0

@NullUserException。噢!男人,你有我。從我的腦海中溜走.. –

+0

@NullUserException。編輯:) –