【发布时间】:2021-04-29 15:42:36
【问题描述】:
getSentenceCaseText()
以句子大小写返回当前文本的字符串表示形式。判例是 在句子中使用大写字母或仅将第一个字母大写的传统方式 词和任何专有名词。此外,所有大写单词应保持原样。
对于这个作业,名词仅限于以一个大写字母开头的单词。
**以字符串“First Sentence.secOND sentence.tHIRD SENTENCE”为例
它的输出将是(第一句。第二句。第三句)**
这是我完成上述任务的代码。我可以将每个点后的第一个字母大写并将其余字母设置为小写,但我不知道如何保持完整的大写单词。
下面是我的代码:
public String getSentenceCaseText(String text) {
int pos = 0;
boolean capitalize = true;
StringBuilder sb = new StringBuilder(text);
while (pos < sb.length()){
sb.setCharAt(pos, Character.toLowerCase(sb.charAt(pos)));
if (sb.charAt(pos) == '.') {
capitalize = true;
} else if (capitalize && !Character.isWhitespace(sb.charAt(pos))) {
sb.setCharAt(pos, Character.toUpperCase(sb.charAt(pos)));
capitalize = false;
}
pos++;
}
return sb.toString();
}
【问题讨论】:
标签: java string split uppercase text-parsing