我正在尝试使用扫描仪类来解析文件中的所有单词。该文件包含常见文本,但我只想获取不包括所有标点符号的单词。 到目前为止我的解决方案还不完整,但已经给我带来了一些问题:
Scanner fileScan= new Scanner(file);
String word;
while(fileScan.hasNext("[^ ,!?.]+")){
word= fileScan.next();
this.addToIndex(word, filename);
}
现在,如果我在“嗨,我的名字是马里奥!”这样的句子中使用它它只返回“hi”、“my”、“name”和“is”。它与“mario!”不匹配(显然)但它与“mario”不匹配,就像我认为的那样。
您能解释一下这是为什么吗?如果您有更好的解决方案,请帮我找到一个更好的解决方案? 谢谢
最佳答案
这有效:
导入java.util.*;
class S {
public static void main(String[] args) {
Scanner fileScan= new Scanner("hi my name is mario!").useDelimiter("[ ,!?.]+");
String word;
while(fileScan.hasNext()){
word= fileScan.next();
System.out.println(word);
}
} // end of main()
}
javac -g S.java && java S
hi
my
name
is
mario
关于java - 如何在Java中扫描不包括标点符号的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7639947/