在计算文本文件中的句子时遇到问题-Java
我的程序计算单词和句子,我知道如何很容易地计算单词,但是我在计算句子时遇到了一个问题 这是我的密码:在计算文本文件中的句子时遇到问题-Java,java,Java,我的程序计算单词和句子,我知道如何很容易地计算单词,但是我在计算句子时遇到了一个问题 这是我的密码: Scanner in = new Scanner(file); in.useDelimiter(""); while (in.hasNext()) { String word = in.next(); char ch = word.charAt(0); String temp = readWord.replaceAll("...", " ").replaceAll("--"
Scanner in = new Scanner(file);
in.useDelimiter("");
while (in.hasNext()) {
String word = in.next();
char ch = word.charAt(0);
String temp = readWord.replaceAll("...", " ").replaceAll("--", " ");
if(temp.contains(".") || (temp.contains("!") || temp.contains("?!"))) {
if(ch == '.')
sentences++;
}
}
它适用于以下句子:
“嗨,我叫布拉。”
但这一次没有:
“我不知道……也许他不喜欢。”
单词计数器工作,但句子计数器不工作。它也计算省略号,即使我告诉它用一个空的空格替换它
有人知道我做错了什么吗?replaceAll返回一个新字符串,结果不会更改原始字符串。(字符串是不可变的,即不能更改)方法的第一个参数是正则表达式(regex),而不是要匹配的文本字符串。在正则表达式中,点表示“任何字符”。如果确实要匹配点字符,则必须在点之前使用反斜杠(如果要在字符串文字中输入反斜杠,则需要在反斜杠之前再输入一个反斜杠)
另一件事是
replaceAll()
不会更改字符串本身,而是返回一个包含替换内容的新字符串。是的,我根据驱逐者的建议将其分配给另一个字符串。是的,我根据驱逐者的建议将返回的字符串分配给另一个字符串。