我已经使用这个方法接受file.txt并将其元素传递到数组列表中。 我的问题是,我不想将整行转换成一个字符串。我想把线上的每个元素都作为字符串。
public ArrayList<String> readData() throws IOException {
FileReader pp=new FileReader(filename);
BufferedReader nn=new BufferedReader(pp);
ArrayList<String> data=new ArrayList<String>();
String line;
while((line=nn.readLine()) != null){
data.add(line);
}
xoxo.close();
return data;
}
有可能吗?
答案 0 :(得分:2)
如何读取这些线条,但将每一行分成单个单词?
while ((line = nn.readLine()) != null) {
for (String word : line.split(" ")) {
data.add(line);
}
}
此示例中的方法split(" ")
将在每个空格上分割行&#34; &#34;并将单个单词放入数组中。
如果文件中的单词被另一个字符(例如逗号)分隔,你也可以在split()中使用它:
line.split(",");
如果可以,这是一种更简单的阅读文本文件的方法:
Scanner scanner = new Scanner(filename);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
for (String word : line.split(" ")) {
data.add(word);
}
}
好不容易但更短:)
最后一条建议:如果你给变量一个更可读的名称,比如bufferedReader
而不是将它们全部命名为nn, pp, xoxo
,那么当代码变得越来越复杂时,你可能会遇到更少的问题
答案 1 :(得分:2)
对String使用split函数。
String line = "This is line";
String [] a = line.split("\\s");// \\s is regular expression for space
a [0] =这个
a [1] =是
a [2] =行
答案 2 :(得分:0)
如果由元素&#39;你的意思是每个单词,然后只需更改
line = nn.readLine()
到
line = nn.read()
应该解决你的问题,因为read方法将接收它读取的每个字符,直到它到达一个空格字符,它将返回处理过的字符。但是,如果按元素表示每个字符,那么问题就更难了。您需要阅读每个单词并使用Java提供的各种函数拆分该字符串。