Java 将文本文件中的每个元素传输到数组中

Java 将文本文件中的每个元素传输到数组中,java,arraylist,text-files,Java,Arraylist,Text Files,我使用此方法接收file.txt并将其元素传输到数组列表中。 我的问题是,我不想把一整行转换成一个字符串。我想把行中的每个元素都当作字符串 public ArrayList<String> readData() throws IOException { FileReader pp=new FileReader(filename); BufferedReader nn=new BufferedReader(pp); ArrayList<Str

我使用此方法接收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;

    }

有可能吗?

如果“元素”指的是每个单词,那么只需更改即可

line = nn.readLine()


应该可以解决您的问题,因为read方法将接收它读取的每个字符,直到它遇到一个空格字符,它将返回处理过的字符。然而,如果元素指的是每个字符,那么问题就更难了。您需要阅读每个单词,并使用Java提供的任何函数将字符串拆分。

如果“元素”是指每个单词,则只需更改即可

line = nn.readLine()


应该可以解决您的问题,因为read方法将接收它读取的每个字符,直到它遇到一个空格字符,它将返回处理过的字符。然而,如果元素指的是每个字符,那么问题就更难了。您需要阅读每一个单词,并使用Java提供的任何函数将该字符串拆分。

如何阅读这些行,但将每一行拆分为单个单词

while ((line = nn.readLine()) != null) {
    for (String word : line.split(" ")) {
        data.add(line);
    }
}
本例中的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当代码以后变得越来越复杂时,您可能会遇到较少的问题

while ((line = nn.readLine()) != null) {
    for (String word : line.split(" ")) {
        data.add(line);
    }
}
本例中的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。以后当代码变得越来越复杂时,问题可能会少一些

String line = "This is line";
String [] a = line.split("\\s");// \\s is regular expression for space
a[0]=此 a[1]=是
[2]=行

对字符串使用拆分函数

String line = "This is line";
String [] a = line.split("\\s");// \\s is regular expression for space
a[0]=此 a[1]=是
a[2]=行

什么是元素?您需要量化输入电流的样子以及您对输出的期望,基于您向我们展示的输入电流,这些元素是什么样子的:您是想将每个元素放入同一个列表中,只是逐字读取文件,还是想为每一行创建一个列表?然后可能会再次出现在列表中。。。什么是元素?您需要量化输入电流的样子以及您对输出的期望,基于您向我们展示的输入电流,这些元素是什么样子的:您是想将每个元素放入同一个列表中,只是逐字读取文件,还是想为每一行创建一个列表?然后可能会再次出现在列表中。。。可以这么说,列表列表我尝试了这种方法,但没有用。我的输入是单词,我想逐字读它们,就像你提到的,但当我使用时。read它要求将行更改为int。read读取单个字符并返回其整数表示形式。所以它在这里不起作用。我尝试了这种方法,但它不起作用。我的输入是单词,我想逐字读它们,就像你提到的,但当我使用时。read它要求将行更改为int。read读取单个字符并返回其整数表示形式。所以它在这里不起作用。很高兴它起了作用!我编辑了我的答案,向你展示了一个较短的版本,这很有帮助!我编辑我的答案是为了给你看一个简短的版本