我在Android res / raw文件夹中添加了一个示例文本文件,我正在尝试将该文件的每一行添加到String数组列表中。
例如,假设示例文本文件包含以下行
第一行样本
第二行示例
第三行样本
我想将这三个句子作为三个字符串添加到字符串数组列表中。我尝试了以下代码:
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.感谢您的帮助。
答案 0 :(得分: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)作为分隔符。
答案 1 :(得分:1)