Skip to content

Latest commit

 

History

History
38 lines (27 loc) · 1000 Bytes

709.转换成小写字母.md

File metadata and controls

38 lines (27 loc) · 1000 Bytes

方法一:使用语言自带的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();
    }
}