我的应用收到大量段落长度的文字。其中一些是大写的,一些是较低的,一些是混合的。我想将其转换为句子,即所有句子都应以大写字母开头。什么是最有效的转换方式? - 我找不到任何示例代码或库来执行此操作。
答案 0 :(得分:2)
上面链接中引用的代码不太起作用,所以我按如下方式对其进行了扩展,如下所示:
"这个SENTENce并不整洁。也不是这句话。"
进入
"这句话不整齐。这句话也不是。"
public static String sentenceCaseForText(String text) {
if (text == null) return "";
int pos = 0;
boolean capitalize = true;
StringBuilder sb = new StringBuilder(text);
while (pos < sb.length()) {
if (capitalize && !Character.isWhitespace(sb.charAt(pos))) {
sb.setCharAt(pos, Character.toUpperCase(sb.charAt(pos)));
}
else if (!capitalize && !Character.isWhitespace(sb.charAt(pos))) {
sb.setCharAt(pos, Character.toLowerCase(sb.charAt(pos)));
}
if (sb.charAt(pos) == '.' || (capitalize && Character.isWhitespace(sb.charAt(pos)))) {
capitalize = true;
}
else {
capitalize = false;
}
pos++;
}
return sb.toString();
}