2017-06-14 52 views
-4

如果我有一個字符串數組,例如String[] myS = new String[] {"1234", "abcd", "234", "bcd", "34", "cd"},會對此進行排序嗎?我假設對字符串進行排序會按字母順序對其進行排序,但如果是這樣,一旦它看到包含數字的字符串,它會中斷嗎?字符串上的Arrays.sort

這是我的功能(其取入2個字符串數組和做的1子串比較和2)

public static String[] inArray(String[] array1, String[] array2) { 

    if(array1.length == 0 || array2.length == 0) return new String[]{}; 

    int size=0, index = 0; 
    Boolean flag = false; 
    for(int i=0; i<array1.length; i++){ 
     flag = false; 
     for(int j=0; j<array2.length; j++){ 
      if(array2[j].contains(array1[i])){ 
      flag = true; 
      break; 
      } 
     } 

     if(flag == false) array1[i] = ""; 
     else size++; 
    } 

    if(size == 0) return new String[] {}; //No matches found 

    String[] sortedArr = new String[size]; 

    for(int i = 0; i<size; i++){ 
     if(array1[i] != ""){ 
     sortedArr[index] = array1[i]; 
     index++; 
     } 
    } 

    Arrays.sort(sortedArr); //Occasionally throws null pointer exception 
    return sortedArr; 
} 
+2

你試過了嗎? –

+2

它將按字典順序排序,所以數字將在字母前排序。 – khelwood

+0

是的。我得到一個空指針異常,但我不確定這是否與它由於數字值而導致的排序有關。 – Noobgineer

回答

0

不,SI也String「含個數字字符串」 ...

排序通常基於Unicode代碼點,因此數字會在字母之前排序。

+0

您也可以指定一個比較器/整理器來微調排序... –