2012-07-25 32 views
0

可能重複:
Java StringTokenizer, empty null tokensjava的分裂給出不同陣列長度

考慮到這一點的java片段:

public class Test { 

    public static void main(String[] args) { 
     String s1 = "1;2;3;4;5"; 
     String s2 = "1;2;;;"; 

     String[] splits1 = s1.split(";"); 
     String[] splits2 = s2.split(";"); 

     System.out.println(splits1.length); 
     System.out.println(splits2.length); 
    } 
} 

OUTPUT:

5 
2 

我需要一些替代方法來提取相同長度的數組。

如果在搜索的字符串中有四個分號(「;」),那麼我希望在適當的時候使用空元素(splits2 [2] = null, splits2 [3] = null等)。

您能否提供解決方案?

+2

[這](http://stackoverflow.com/questions/785586/how-can-split-a-string-which-contains-唯一分隔符)應該可以幫助你。檢查投票的答案。 – cosmincalistru 2012-07-25 10:17:32

+0

@cosmincalistru thx幫助,我有點新的編程 – 2012-07-25 10:57:09

回答

1

1.使用「;」之間的「空格」具有相同長度的陣列。 你將有空閒空間不爲空

例如:

String[] s = "1;2; ; ;" ; 

2.陣列是一種對象其可以是,並且如果它包含在其內部,但是本參考變量可以是null,但是原始類型不能爲空。So i am using space.

///////////////////// EDITED /////////////////

使用此以下片斷,其工作....

String a = "1;2;;;;"; 
     char[] chArr = a.toCharArray(); 

     String temp = new String(); 
     String[] finalArr = new String[a.length()]; 

     for (int i = 0; i < chArr.length; i++) { 

      try { 
       temp = chArr[i] + ""; 
       Integer.parseInt(temp); 
       finalArr[i] = temp; 

      } catch (NumberFormatException ex) { 

       finalArr[i] = null; 

      } 

     } 
     for (String s : finalArr){ 
      System.out.println(s); 
     } 
      System.out.println(finalArr.length); 
+0

我不應該修改搜索字符串之間有分號之間的空格 – 2012-07-25 11:02:12

+0

我想@dadu的問題是,他不能選擇輸入數據,所以試圖按原樣分割數據應該是給出的解決方案。 – cosmincalistru 2012-07-25 11:05:22

+0

@dadu ...查看我編輯的部分....它包含你想要的代碼.. – 2012-07-25 11:29:23