Rewrite capitalize method

This commit is contained in:
atomicint
2015-04-07 18:58:58 -04:00
parent 725ada7878
commit 6ada19fdc4
+10 -19
View File
@@ -23,27 +23,18 @@ public final class TextUtil {
* @return The string with correct capitalization.
*/
public static String capitalize(String str) {
char[] chars = str.toCharArray();
boolean sentenceStart = true;
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if (sentenceStart) {
if (c >= 'a' && c <= 'z') {
chars[i] -= 0x20;
sentenceStart = false;
} else if (c >= 'A' && c <= 'Z') {
sentenceStart = false;
}
} else {
if (c >= 'A' && c <= 'Z') {
chars[i] += 0x20;
}
}
if (c == '.' || c == '!' || c == '?') {
sentenceStart = true;
boolean capitalize = true;
StringBuilder bldr = new StringBuilder(str);
for (int index = 0, length = str.length(); index < length; index++) {
char character = bldr.charAt(index);
if (character == '.' || character == '!' || character == '?') {
capitalize = true;
} else if (capitalize && !Character.isWhitespace(character)) {
bldr.setCharAt(index, Character.toUpperCase(character));
capitalize = false;
}
}
return new String(chars, 0, chars.length);
return bldr.toString();
}
/**