方法一:使用语言自带的API
class Solution {
public String toLowerCase(String s) {
return s.toLowerCase();
}
}
方法二:
-
大写字母 A - Z 的 ASCII 码范围为 [65,90]:
-
小写字母 a - z 的 ASCII 码范围为 [97,122]。
由于 [65,96] 对应的二进制表示为 [(01000001)2, (01011010)2],32 对应的二进制表示为(00100000)2 ,而对于 [(01000001)2, (01011010)2]内的所有数,表示 32 的那个二进制位都是 00,因此可以对 ch 的 ASCII 码与 32 做按位或运算,替代与 32 的加法运算。
class Solution {
public String toLowerCase(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); ++i) {
char ch = s.charAt(i);
if (ch >= 65 && ch <= 90) {
ch |= 32;
}
sb.append(ch);
}
return sb.toString();
}
}