将文本文件中的每个元素转换为数组

时间:2014-11-11 22:59:04

标签: java arraylist text-files

我已经使用这个方法接受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;

    }

有可能吗?

3 个答案:

答案 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提供的各种函数拆分该字符串。