我正在用Java写一个代码,要求我查找句子1,句子2和直到最后一个句子中的字符数,直到字符串/段落结束。我实际上能够获得整个字符串中的字符数。但是我应该得到的是一个段落中每个句子中有多少个字符。例如,在一个段落中,第一个句子有70个字符,第二个句子有40个字符,依此类推。我认为它与期末有关,但不知道如何执行。
答案 0 :(得分:0)
检查一下:
String s = "I got it. i seriously got 99.99% of it. never mind the remaining 0.01%";
String[] arrs = s.split("\\. ");
for(String str : arrs) {
System.out.println(str);
}
以上代码将导致以下结果:
I got it
i seriously got 99.99% of it
never mind the remaining 0.01%
因此,只要有句号和空格的匹配(即句子终止),我就可以通过分割给定的字符串将整个段落分成句子。 s.split("\\. ")
是负责此工作的代码。我用\\
转义了.
,它在正则表达式中具有特殊的意义。
您可以执行以下操作:
String[] arrs = s.split("\\. ");
for(String str : arrs) {
int charCount = str.toCharArray().length;
System.out.println(charCount); //prints size of sentence "str"
}
答案 1 :(得分:0)
只需遍历字符串并将其分成用\ n分隔的子字符串(新段落的符号) 这是一个包含有关其工作原理的更多信息的链接。 https://codingbat.com/doc/java-string-indexof-parsing.html
int i = 0;
while(myString.indexOf("\n", i) != -1) {
//Divides the main string into each paragraph
String mySubstring = myString.substring(myString.indexOf("\n", i-1), myString.indexOf("\n", i));
//Prints out length of each paragraph
System.out.println(mySubstring.length());
i++;
}
答案 2 :(得分:0)
您可以将您的段落分割成一个点,再加上任何空白字符,然后将其保存到字符串数组中。
然后遍历数组并计算每个句子的字母。
String paragraph = "This is the first sentence. And this the second one. A third one follows.";
String[] sentences = paragraph.split("\\.\\s");
for(int i = 0; i < sentences.length; i++) {
System.out.println(String.format("Sentence %d has %d characters", i + 1, sentences[i].length()));
}
这将为您提供以下输出:
Sentence 1 has 26 characters
Sentence 2 has 23 characters
Sentence 3 has 20 characters
请注意,这并不涵盖包含e的句子。 G。 Mr.
或任何缩写。