gpt4 book ai didi

java - 计算句子,只计算以标点符号+2个空格结尾的句子

转载 作者:行者123 更新时间:2023-11-29 05:24:04 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何制作一个句子计数器,我已经有了,但问题是,只有当句号/问号/等之后有两个空格时,我才需要它来计算一个句子。

例如,使用我的代码,如果您输入字符串“你好,我的名字是 ryan...”,它会返回 3 个句子的计数。我需要它来计算一个句子。

这个程序还需要计算字数。我通过计算空格的数量来计算单词数 - 1。这就是我的问题所在,我要么弄乱了单词数,要么弄乱了句子数。

这里是字数统计的方法:

public static int countWords(String str){
if(str == null || str.isEmpty())
return 0;

int count = 0;
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) != ' '){
count++;
while(str.charAt(i) != ' ' && i < str.length()-1){
i++;
}
}
}
return count;
}

这里是计算句子的方法:

public static int sentenceCount(String str) {
String SENTENCE_ENDERS = ".?!";

int sentenceCount=0;
int lastIndex=0;
for(int i=0;i < str.length(); i++){
for(int j=0;j < SENTENCE_ENDERS.length(); j++){
if(str.charAt(i) == SENTENCE_ENDERS.charAt(j)){
if(lastIndex != i-1){
sentenceCount++;
}
lastIndex = i;
}
}

}
return sentenceCount;
}

最佳答案

我真的明白了,使用正则表达式,也非常简单。

public static int sentenceCount(String str) {

String regex = "[?|!|.]+[ ]+[ ]";
Pattern p = Pattern.compile(regex);
int count = 0;
Matcher m = p.matcher(str);
while (m.find()) {
count++;
}
if (count == 0){
return 1;
}
else {
return count + 1;
}
}

效果很好,假设用户至少输入了一个句子,我添加了 if 语句,假设他们不会在最后一个句子的末尾放置两个空格,则在计数中添加了一个。

关于java - 计算句子,只计算以标点符号+2个空格结尾的句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23401275/

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