gpt4 book ai didi

java - 使用java Scanner读取文件时如何正确识别单词?

转载 作者:行者123 更新时间:2023-12-01 17:47:41 26 4
gpt4 key购买 nike

我正在尝试做一个练习,我需要创建一个类来读取 .txt 中的单词,并将单词放入 HashSet 中。问题是,如果文字是“我是丹尼尔,我是丹尼尔”。我会用一个词来表示“am”,“am”。和“丹尼尔”和“丹尼尔”。我该如何解决这个问题?

这是我的代码。 (我尝试使用正则表达式,但遇到异常):

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;

public class WordCount {

public static void main(String[] args) {
try {
File file = new File(args[0]);
HashSet<String> set = readFromFile(file);
set.forEach(word -> System.out.println(word));
}
catch(FileNotFoundException e) {
System.err.println("File Not Found!");
}

}

private static HashSet<String> readFromFile(File file) throws FileNotFoundException {
HashSet<String> set = new HashSet<String>();
Scanner scanner = new Scanner(file);
while(scanner.hasNext()) {
String s = scanner.next("[a-zA-Z]");
set.add(s.toUpperCase());
}
scanner.close();
return set;
}


}

最佳答案

当扫描程序尝试读取与正则表达式不匹配的字符串时,会引发错误。

String s = scanner.next("[a-zA-Z]");

而不是在扫描仪中传递正则表达式。阅读该单词并删除特殊字符,如下所示。

String s = scanner.next();
s = s.replaceAll("[^a-zA-Z]", "");

关于java - 使用java Scanner读取文件时如何正确识别单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60837910/

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