0

我试图从只包含字符串的文件输入中获取单词,并将每个单词分别存储到一个数组ArrayList中(不允许)。

我下面的代码接受文件输入,但将其作为一个块。例如,如果文件输入是“一二三”,我希望每个单词在数组(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");
}
4

4 回答 4

0

如果文件输入是“一二三”,我希望每个单词在数组中都有自己的空间,所以数组 [0] = ONE,数组1 = TWO 和数组 [2] = 三

使用带有空格的String#split(delim)作为分隔符。

String fileInput = "ONE TWO THREE";
String[] array = filrInput.split("\\s");
于 2013-03-06T16:27:58.870 回答
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++;
}
于 2013-03-06T16:29:51.873 回答
0

发生这种情况是因为您从文件中读取了 LINES。你可以这样做:

String array[]=in.nextLine().split(" ");
于 2013-03-06T16:30:31.717 回答
0

我会将分隔符设置为空格“”,然后使用 .next()。

in.useDelimiter(" ");
while(in.hasNext()){
    wd = in.next();
    //wd will be one word
}
于 2013-03-06T16:33:36.117 回答