2

我在 Android res/raw 文件夹中添加了一个示例文本文件,并尝试将文件的每一行添加到字符串数组列表中。

例如,假设示例文本文件包含以下行

采样线一

采样线二

采样线三

我想将这三个句子作为三个字符串添加到字符串数组列表中。我尝试了以下代码:

List<String> sampleList = new ArrayList<String>();    
Scanner s = null;
s = new Scanner(getResources().openRawResource(R.raw.sample));
while (s.hasNextLine()){
    sampleList.add(s.next());
}
s.close();

上面的代码将每个单词添加到数组列表中,结果数组大小为 9,而不是添加每个句子,预期数组大小为 3。感谢您的帮助。

4

2 回答 2

3

使用Scanner#nextLine()而不是Scanner#next()

sampleList.add(s.nextLine());

扫描仪使用空白作为默认分隔符。Scanner#next()从此扫描器中查找并返回下一个完整的令牌。一个完整的标记前后是匹配分隔符模式的输入。

您还可以使用Scanner#useDelimiter(delim)将扫描仪的分隔符设置为下一行(\n ) 。

s = new Scanner(getResources().openRawResource(R.raw.sample)).useDelimiter("\n");
while (s.hasNextLine()){
   sampleList.add(s.next());
}

现在您可以使用Scanner.next()它,因为它使用下一行(\n)作为分隔符。

于 2013-02-24T00:20:38.157 回答
1

而不是使用

s.next()

利用

s.nextLine()

每个Scanner.nextLine

于 2013-02-24T00:22:53.330 回答