本篇為LeetCode上演算法的簡單問題,To Lower Case。
Java String
雖然就有toLowerCase()
方法了,但聽說直接用ASCII table來換算更快。
ASCII table上英文大寫和小寫的十進位值剛好差了32,至於不在大寫英文範圍內的字符就直接忽略。算法如下:
public static String toLowerCase(String str) {
char[] chars = new char[str.length()];
chars = str.toCharArray();
StringBuilder sb = new StringBuilder();
for(char c : chars) {
if((int)c <= 90 && (int)c >= 65 ) {
c = (char)((int)c + 32);
}
sb.append(c);
}
return sb.toString();
}
參考:
沒有留言:
張貼留言