2014-03-27 30 views
1

我想讀一個句子中的所有單詞到一個數組。問題是,單詞之間可能有任意數量的空白。將句子中的所有單詞都寫入Arrya,忽略空格?

Example - "I am a good  boy". 

我試過使用分隔方法,以空格作爲分隔符,但它也會包含空格,就像在結果中一樣。

我爲此使用的代碼如下。請忽略,其餘的代碼。

class test { 
    public static void main(String[] args){ 
     // c. Total the 100 elements of floating-point array c and print them. 
     double c[] = new double [100]; 
     String str="BusNo 123 ArrivalTime 1030 Departure 1420 "; 
     String split[]=str.split(" "); 
     double total=0; 
     //Initialize C with Random Numbers from 0 to 10,000 Randomly 
     for(int k=0;k<100;k++){ 
      c[k]=Math.random() *10000; 
      total+=c[k]; //Find the Total; 
      System.out.printf("C is %f\n",c[k]); 
     } 
     System.out.printf("Total is %f\n", total); 
    } 
} 

對於我的示例文本,如上所示,分裂[]數組將如下

[I, , , , am, a, good, , , , , , boy] 

我知道,一種變通方法,我可以我的str.split後有一個循環()並忽略所有的空白。

我將不勝感激,如果有什麼更好的辦法的情況下直接空格

回答

3

閱讀您將需要通過splitwhitespace,而不僅僅是一個空間,使多個空格被視爲一個單一的分隔符。

String split[] = str.split("\\s+"); 
+0

感謝您的回答和參考。有用。 –

3

僅適用於空間,您可以使用

String[] strings = input.split("[ ]+"); 

String[] strings = input.split(" +"); 

對於任何空格(空格,製表符或新行),使用

String[] strings = input.split("\\s+"); 
+0

感謝您的回覆。 –

+0

不客氣。感謝您的贊成票。 – aliteralmind