前情提要
涉及知识点:
- ascii码
- ^ 运算
代码先拿去抄
public static String capital2UpperCase(String name) {
char[] cs = name.toCharArray();
if (97 <= cs[0] && cs[0] <= 122) {
cs[0] ^= 32;
}
return String.valueOf(cs);
}
巧用位运算
大小写字母的ASCII码值差32,可以直接加减32的方法来进行大小写字母的转换。但是我们这里用位运算来处理。
通过观察上图中大写字母与小写字母的二进制可以发现,除了第六位不同,其余位数均相同。如A(0100 0001)与a(0110 0001)
结论
将小写字母与32(0010 0000)做 ^ 运算就可以实现大小写转换啦。