题目描述:
解题思路:
根据ASCII表可以知道,大写的字母在65到90之间,小写字母在97到122之间,大小写字母之间打间隔为(97-65)= 32,刚好是32位,本题我们可以将字符是大写字母的对应到ASCII编码表中直接加上32,这里用 按位或 相加不用进位,速度比直接用+号更快,这样就都是小写字母了。
代码实现如下:
class Solution {
public String toLowerCase(String s) {
StringBuilder str = new StringBuilder();
for (int i = 0;i < s.length();i++) {
char ch = s.charAt(i);
if (ch <= 'Z' && ch >= 'A') {
ch |= 32;
}
str.append(ch);
}
return str.toString();
}
}
ASCII表:
或者也可以投机取巧直接用语言自带的API。
class Solution {
public String toLowerCase(String s) {
return s.toLowerCase();
}
}