Java 计算句子的数量
我有一个简单的循环来计算输入的句子。标点符号重复一次效果很好,但它们可以像“!!!”或“?”这样组合。所以,它像不同的句子一样计算它,如果它不是一个标记,我应该检查下一个字符。我没有任何想法,谢谢你抽出时间Java 计算句子的数量,java,arrays,Java,Arrays,我有一个简单的循环来计算输入的句子。标点符号重复一次效果很好,但它们可以像“!!!”或“?”这样组合。所以,它像不同的句子一样计算它,如果它不是一个标记,我应该检查下一个字符。我没有任何想法,谢谢你抽出时间 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Please enter your sentence"); String line =br.readLi
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");
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“请输入您的句子”);
String line=br.readLine();
字符串分隔符=“?!”;
整数计数=0;
对于(int i=0;i跳过重复字符,即仅检查该字符与前一个字符不同时是否为分隔符
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++;
}
}
}
这个正则表达式解决方案只对相邻的分隔符计数一次,即使它们不同,例如,如果line=“这是一个文本。没有测试!!为什么?!?”
,那么下面给出的count=3
是我能想到的最佳解决方案。这是基于下一句之前总是有空格的事实
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("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++;
// Skip all characters until a space is found
while (i < line.length() && line.charAt(i) != ' ')
i++;
}
}
System.out.println("There are " + count + " sentences");
}
}
您已经介绍过正则表达式了吗?使用正则表达式可能更容易。如果您了解正则表达式,您可以使用split
方法,以及匹配任意数量标点字符的表达式。如果您不了解正则表达式,您可以在中添加一个循环,如果
语句前进到组中的最后一个标点字符。@ArvindKumarAvinash我知道,我在回答中已经说过。第一部分是简单地解决OP要求的问题。第二部分是显示可选的单行正则表达式解决方案,这也解决了混合分隔符问题。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("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++;
// Skip all characters until a space is found
while (i < line.length() && line.charAt(i) != ' ')
i++;
}
}
System.out.println("There are " + count + " sentences");
}
}
Please enter your sentence: This is a text. No a test!! Why?!?!?
There are 3 sentences