繁体   English   中英

Java逐行读取文本文件,但将行中的单词分隔成数组

[英]Java read text file in lines, but seperate words in lines into array

我正在尝试编写一个查看文本文件的代码,并执行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);
    }

如果您希望每行包含一个字符串数组 ,请改为这样编写:

List<String[]> listwords = new ArrayList<>();

while (in.hasNext()) {
    listwords.add(in.nextLine().split(" "));
}

顺便说一句,您似乎在互换使用术语“数组”和“ ArrayList”。 那将是一个错误,它们是截然不同的东西。

如果您希望每行有一个字符串List ,请这样编写:

List<List<String>> listwords = new ArrayList<>();

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

您可以使用

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

分割成新的线。 然后,您可以根据需要在Whitespace上进一步拆分它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM