2013-03-06 107 views
0

我試圖從僅包含字符串的文件輸入中讀取單詞,並將每個單獨的單詞存儲到單個數組中(不允許使用ArrayList)。從文件中獲取單詞輸入

我在下面的代碼需要在文件輸入,但把它作爲一個塊。例如,如果文件輸入是「ONE TWO THREE」,我希望每個單詞在數組中有自己的索引(array[0] = "ONE",array[1]="TWO"array[2]="THREE"),但我的代碼只是將這個句子放在array[0] = "ONE TWO THREE"中。我怎樣才能解決這個問題?

int i = 0; 
String wd = ""; 
while (in.hasNextLine()) {     
    wd = in.nextLine() ; 
    array[i] = wd; 
    i++; 
    System.out.println("wd"); 
} 
+3

如果你不知道的話,在第一次的確切數字,我想你,用列表,而不是一個數組的建議:'list.add(WD);' – Rob 2013-03-06 16:30:31

+0

@Rob'(不出聲的ArrayList) ':) – PermGenError 2013-03-06 16:35:33

+0

@PremGenError Woops沒錯,我沒有看到那個抱歉。但是,所有列表當然不是ArrayList。 – Rob 2013-03-06 16:36:31

回答

0

那是因爲你從文件中讀取LINES。你可以這樣做:

String array[]=in.nextLine().split(" "); 
0

F中的文件輸入是 「一二三」 我想每個字具有陣列中的其自己的 空間,從而陣列[0] = ONE,陣列1 = TWO和陣列[2] =三

使用String#split(delim)與白色空間作爲分隔符。

String fileInput = "ONE TWO THREE"; 
String[] array = filrInput.split("\\s"); 
0

替代線路

array[i] = wd; // since wd is the whole line, this puts lines in the array 
你想在斯普利特你讀了線,把拆分項目陣列中

的。

String[] items = wd.split("\\s+"); // splits on any whitespace 
for (String item : items) { // iterate through the items and shove them in the array 
    array[i] = item; 
    i++; 
} 
0

我會將分隔符設置爲空格「」,然後使用.next()。

in.useDelimiter(" "); 
while(in.hasNext()){ 
    wd = in.next(); 
    //wd will be one word 
}