字符串 trick
分享个字母大小写转换的方法:
- 统一转成大写:
ch & 0b11011111
简写:ch & 0xDF
- 统一转成小写:
ch | 0b00100000
简写:ch | 0x20
- 大小写互换:
ch …… 0b00100000
简写:ch ^ 0x20
,原来是小写转成大写,原来是大写则转成小写
比较的时候注意加上小括号哦,因为位运算优先级比较低。
原理:65~90为26个大写英文字母,97~122号为26个小写英文字母
65(0100 0001)到 90(0101 1010),刚好第5位(从0开始)都为0
97(0110 0001)到 122(0111 1010),刚好第5位(从0开始)都为1
说明: ch & 0b11011111
,效果就是将第5位(从0开始)清0,即如果第5位原来为0(大写字母),则保持不变,否则,减去32(小写转大写),小写字母转换成对应的大写字母正好就是减32
同理,ch | 0b00100000
,效果是如果第5位(从0开始)为0(大写字母),则加32,否(大写转小写)则,保持不变