Java以行的形式读取文本文件,但是将行中的单词分隔成数组

时间:2017-12-03 12:37:49

标签: java arraylist text-files java.util.scanner

我正在尝试编写一个查看文本文件的代码,并执行一个while循环以便它读取每一行,但我需要每行的每个单词都在一个数组中,这样我就可以执行一些if语句。我目前遇到的问题是我的数组当前正在将数据中的所有单词存储在数组中..而不是数组中每行的所有单词。

这是我目前的一些代码:

    public static void main(String[] args) throws IOException {

    Scanner in = new Scanner(new File("test.txt"));
    List<String> listwords = new ArrayList<>();


while (in.hasNext()) {
      listwords.addAll(Arrays.asList(in.nextLine().split(" ")));
}


    if(listwords.get(4) == null){
        name = listwords.get(2);
     }
    else {
        name = listwords.get(4);
    }

2 个答案:

答案 0 :(得分:2)

如果你想每行有一个数组字符串,那么就这样写:

:35
不过,您似乎可以互换地使用术语“数组”和“ArrayList”。 这将是一个错误,它们是不同的东西。

如果您希望每行都有 List<String[]> listwords = new ArrayList<>(); while (in.hasNext()) { listwords.add(in.nextLine().split(" ")); } 字符串,请改为编写:

List

答案 1 :(得分:1)

您可以使用

listwords.addAll(Arrays.asList(in.nextLine().split("\\r?\\n")));

拆分新线。然后,如果需要,可以在空白区域进一步拆分。