大小寫轉換
大寫 | 十六進制 | 二進制 | 小寫 | 十六進制 | 二進制 |
---|---|---|---|---|---|
A | 41 | 01000001 | a | 61 | 01100001 |
B | 42 | 01000010 | b | 62 | 01100010 |
C | 43 | 01000011 | c | 63 | 01100011 |
D | 44 | 01000100 | d | 64 | 01100100 |
E | 45 | 01000101 | e | 65 | 01100101 |
F | 46 | 01000110 | f | 66 | 01100110 |
規律
根據觀察上表大小寫所對應的二進制,除第6位外(從右向左數),大寫字母和小寫字母的其他各位都一樣,大寫字母的第6位爲0,小寫字母的第6位爲1。
因此,對於一個字母,不管原來是大寫還是小寫:
- 將其第6位置0,它就必將變成大寫字母;
- 將其第5位置1,它就必將變成小寫字母。
轉大寫:ch & 0b11011111 簡寫:ch & 0xDF
轉小寫:ch | 0b00100000 簡寫:ch | 0x20
Tips:比較的時候注意加上小括號,因爲位運算優先級比較低。
舉例
public static void main(String[] args) {
//定義char
char small = 'a';
char big = 'B';
//如果直接輸出char類型輸出的是ASCII碼,所以進行強制轉換
System.out.println("小寫'a'轉大寫:"+(char) (small & 0xDF));
System.out.println("大寫'B'轉小寫:"+(char) (big & 0xDF));
}