样本输出:
输入文章:我喜欢猫。
输入错误!您的论文必须至少包含2个句子
再试一次:
输入文章:我喜欢猫。我喜欢狗。
您的文章包含2个句子。
到目前为止,这是我的代码:
System.out.print("Enter the essay: ");
String essay = input.nextLine();
do {
System.out.print("Incorrect input! Your essay must contain at least 2 sentences, please try again: ");
essay = input.nextLine();
} while (!(essay.contains(".")));
if (essay.contains(".")) {
System.out.println("Your essay contains x sentences.");
}
差距很多,我不知道该如何去做。你能帮忙吗?
最佳答案
您可以使用稍微复杂的正则表达式进行拆分,并取其长度:
Scanner input = new Scanner(System.in);
System.out.print("Enter the essay: ");
String essay = input.nextLine();
int sentenceCount = essay.split("\\S(\\s*[.!?])+(?!\\d)").length;
while (sentenceCount < 2) {
System.out.print("Incorrect input! Your essay must contain at least 2 sentences, please try again: ");
essay = input.nextLine();
sentenceCount = essay.split("\\S(\\s*[.!?])+(?!\\d)").length;
}
System.out.printf("Your essay contains %d sentences.", sentenceCount);
Live demo on Ideone
请注意,这还会计算其他以句子结尾的字符,并拒绝显然不是2个句子的其他输入,例如:
...
我没有写一个!
WTF?!?!
Pi是3.14159。