gpt4 book ai didi

java - 如何仅使用 Scanner 读取文件并将每个句子存储在 arrayList 中?

转载 作者:行者123 更新时间:2023-12-02 10:51:49 30 4
gpt4 key购买 nike

我在执行此操作时遇到了很多麻烦,并且由于这是一项作业,我无法发布我的整个代码。我已经能够按照作业要求成功地将每个单词存储到 ArrayList 中,但我确实需要将每个句子存储到 ArrayList 中,但我有很多这样做有困难。

import java.util.*;
import java.io.*;
import java.lang.*;

public class WordLookUp {
private String[] mostWords;
private String line;
private List<String> original;
private List<String> mostOccur = new ArrayList<String>();
private List<Integer> count = new ArrayList<Integer>();
private String token;
private List<String> sentences = new ArrayList<String>();
private String sToken;
private Scanner reader2;
private String[] ss;

public WordLookUp(String file) throws Exception {
try (Scanner reader = new Scanner(new File(file));){
this.original = new ArrayList<String>();
this.sToken = null;

while (reader.hasNext()) { //reads file and stores it in string
this.token = reader.next();
this.original.add(this.token); //adds it to my arrayList
findMostOccurringWords(this.token);
this.sToken = reader.nextLine(); //how can I make this read and store sentences only
this.sentences.add(this.sToken);
}
}
}
}

如您所见,我使用了 reader.nextLine() 但当然这仅在文件中存储行。我通过打印来测试它:

public void print() {
for (String s : this.sentences) {
System.out.println(s);
}
}

这证实了这一点。但是,我无法找到如何拆分 ArrayList (我认为你不能)或如何简单地将每个句子放入句子的索引中 ArrayList。我无法使用任何内置库,例如 CollectionsArray,我必须手动弄清楚如何将每个句子存储在 ArrayList 中>。感谢您的帮助!

最佳答案

你的逻辑有点不对劲。当您读取 next() 然后读取 nextLine() 时,nextLine() 将不包含使用 next() 读取的内容 所以你每次迭代都会跳过一个单词。试试这个:

-使用useDelimiter();方法读取一行,直到出现句号、感叹号或问号(句子结尾)

使用 . 作为分隔符的示例:

Scanner in = new Scanner("Hello. This is a string. It has multiple senteces").useDelimiter("\\.");
while(in.hasNext()) {
System.out.println(in.next());
}

-将句子添加到句子ArrayList()

-将句子拆分成单独的单词并将它们添加到单词 ArrayList()

关于java - 如何仅使用 Scanner 读取文件并将每个句子存储在 arrayList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52121403/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com