gpt4 book ai didi

java - 计算句子数

转载 作者:行者123 更新时间:2023-11-30 01:43:52 25 4
gpt4 key购买 nike

我有一个简单的循环来计算输入句子。当标点符号重复一次时效果很好,但它们可以像“!!!”一样组合在一起。或者 ”???”。因此,它像不同的句子一样计算它,如果它不是标记,我应该检查下一个字符。我没有任何想法,谢谢您的宝贵时间!

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter your sentence");
String line =br.readLine();
String delimiters = "?!.";
int count=0;

for(int i=0;i<line.length();i++) {

if (delimiters.indexOf(line.charAt(i))!=-1) {
count++;
}
}
System.out.println("There are "+count+" sentences");

最佳答案

跳过重复字符,即仅在该字符与前一个字符不同时才检查它是否是分隔符。

String delimiters = "?!.";
int count = 0;
for (int i = 0; i < line.length(); i++) {
if (i == 0 || line.charAt(i) != line.charAt(i - 1)) {
if (delimiters.indexOf(line.charAt(i)) != -1) {
count++;
}
}
}
<小时/>

正如一些人在评论中建议的那样,您还可以使用正则表达式,例如像这样:

int count = line.replaceAll("([?!.])+|[^?!.]+", "$1").length();

此正则表达式解决方案仅对相邻分隔符字符进行一次计数,即使它们不同,例如如果 line = "This is a text. No a test!! Why?!?!?",那么您将得到 count = 3

关于java - 计算句子数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58942322/

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