Character將一個char基本數據類型封裝在類中。這個類中只有一char類型的變量。Character是基於unicode碼進行的Character所有的方法,都是圍繞着這個char基本數據類型的值進行操作的。
ASCII控制字符
二進制 | 十進制 | 十六進制 | 縮寫 | 可以顯示的表示法 | 名稱/意義 |
---|---|---|---|---|---|
0000 0000 | 0 | 00 | NUL | ␀ | 空字符(Null) |
0000 0001 | 1 | 01 | SOH | ␁ | 標題開始 |
0000 0010 | 2 | 02 | STX | ␂ | 本文開始 |
0000 0011 | 3 | 03 | ETX | ␃ | 本文結束 |
0000 0100 | 4 | 04 | EOT | ␄ | 傳輸結束 |
0000 0101 | 5 | 05 | ENQ | ␅ | 請求 |
0000 0110 | 6 | 06 | ACK | ␆ | 確認回應 |
0000 0111 | 7 | 07 | BEL | ␇ | 響鈴 |
0000 1000 | 8 | 08 | BS | ␈ | 退格 |
0000 1001 | 9 | 09 | HT | ␉ | 水平定位符號 |
0000 1010 | 10 | 0A | LF | ␊ | 換行鍵 |
0000 1011 | 11 | 0B | VT | ␋ | 垂直定位符號 |
0000 1100 | 12 | 0C | FF | ␌ | 換頁鍵 |
0000 1101 | 13 | 0D | CR | ␍ | 歸位鍵 |
0000 1110 | 14 | 0E | SO | ␎ | 取消變換(Shift out) |
0000 1111 | 15 | 0F | SI | ␏ | 啟用變換(Shift in) |
0001 0000 | 16 | 10 | DLE | ␐ | 跳出數據通訊 |
0001 0001 | 17 | 11 | DC1 | ␑ | 設備控制一(XON 啟用軟件速度控制) |
0001 0010 | 18 | 12 | DC2 | ␒ | 設備控制二 |
0001 0011 | 19 | 13 | DC3 | ␓ | 設備控制三(XOFF 停用軟件速度控制) |
0001 0100 | 20 | 14 | DC4 | ␔ | 設備控制四 |
0001 0101 | 21 | 15 | NAK | ␕ | 確認失敗回應 |
0001 0110 | 22 | 16 | SYN | ␖ | 同步用暫停 |
0001 0111 | 23 | 17 | ETB | ␗ | 區塊傳輸結束 |
0001 1000 | 24 | 18 | CAN | ␘ | 取消 |
0001 1001 | 25 | 19 | EM | ␙ | 連接介質中斷 |
0001 1010 | 26 | 1A | SUB | ␚ | 替換 |
0001 1011 | 27 | 1B | ESC | ␛ | 跳出 |
0001 1100 | 28 | 1C | FS | ␜ | 文件分割符 |
0001 1101 | 29 | 1D | GS | ␝ | 組群分隔符 |
0001 1110 | 30 | 1E | RS | ␞ | 記錄分隔符 |
0001 1111 | 31 | 1F | US | ␟ | 單元分隔符 |
0111 1111 | 127 | 7F | DEL | ␡ | 刪除 |
ASCII可顯示字符
|
|
|
java中,char類型變量可以強制轉化為int類型變量,int類型變量也可以強制轉化成char類型的變量:
- char c='a';
- int i=98;
- System.out.println((int)c);
- System.out.println((char)i);
對於數組類型,其下標為int類型,所以可以直接使用char類型變量,默認強制轉換:
- int[] array=new int[100];
- for(int i=0;i<array.length;i++){
- array[i]=i;
- }
- char c='a';
- System.out.println(array[c]);
package sms.rey.cn; import java.io.BufferedReader; import java.io.InputStreamReader; public class CharacterDemo { // 題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。 @SuppressWarnings("unused") public static void main(String[] args) throws Exception { int letterSum = 0; int blankSum = 0; int numberSum = 0; int otherSum = 0; BufferedReader bufr = new BufferedReader(new InputStreamReader( System.in)); String line = bufr.readLine(); char[] ch = line.toCharArray();//String的方法,講輸入的字符串轉換成字符數組 TotalChar(ch, otherSum, otherSum, otherSum, otherSum); } public static void TotalChar(char[] ch, int letterSum, int blankSum, int numberSum, int otherSum) { // 遍歷字符數組 for (int i = 0; i < ch.length; i++) { if (Character.isDigit(ch[i])) { numberSum++; } else if (Character.isSpaceChar(ch[i])) { blankSum++; } else if (Character.isLetter(ch[i])) { letterSum++; } else { otherSum++; } } System.out.println("輸入的字符串中共有空格:" + blankSum); System.out.println("輸入的字符串中共有字母:" + letterSum); System.out.println("輸入的字符串中共有其他字符:" + otherSum); System.out.println("輸入的字符串中共有數字:" + numberSum); } }
下面列出的是Character的其他方法,僅提供參考:
// Character類將一個char基本數據類型封裝在類中。這個類中只有一char類型的變量。Character是基於unicode碼進行的 // Character所有的方法,都是圍繞着這個char基本數據類型的值進行操作的。 Character c = new Character('我'); char cc = 'a'; // 將一個char基本數據類型的數據封裝成一個Character類型的對象 System.out.println(Character.valueOf('a')); // 返回封裝在Character類中的char基本數據類型的變量的值。也可理解為將Character對象轉化成一個char基本數據類型的值 System.out.println(c.charValue()); // 獲取Character類中封裝的char基本數據類型變量的hash碼值。也可理解為獲得Character對象的hash碼值,從源碼看就是返回強制轉換為int類型后的值。 System.out.println("hashcode:" + c.hashCode()); // 判斷參數中的字符是否為為候補碼,也就是說字符轉化為數字后是否大於等於65535,如果參數直接為數字,那就看數字是否大於等於65535,是的話返回2,否則返回1 // 字符在計算機中都是用數字表示的,一個char類型占16位二進制,轉成十進制后可以表示65536種字符,也就是說每個字符都可以用一個數字表示,當這數字大於65535說明 // 這個字符為擴充候補字符。 System.out.println(Character.charCount('我')); // 比較類型和值是否都相同 System.out.println(c.equals(123)); System.out.println(Character.codePointAt("意大利", 2)); char[] c1 = { 'a', 'b', 'c' }; System.out.println(Character.codePointAt(c1, 1)); // 獲取指定位置字符的代碼點。第二個參數的值一定要小於第三個參數,否則異常 System.out.println(Character.codePointAt(c1, 0, 1)); // 將一個代碼點轉化為字符 System.out.println(Character.toChars(21033)); System.out.println(Character.offsetByCodePoints("abc", 1, 1)); // 判斷是否為小寫字母 System.out.println("isLowerCase: " + Character.isLowerCase('a')); // 通過codepoint來判斷是否為小寫字母 System.out.println("isLowerCase: " + Character.isLowerCase(65)); // 判斷是否為低位代理 System.out.println(Character.isLowSurrogate('a')); // 判斷是否為大寫字母 System.out.println("isUpperCase: " + Character.isUpperCase('A')); // 通過codepoint來判斷是否為大寫字母 System.out.println("isUpperCase: " + Character.isUpperCase(97)); // 判斷字符是否為數字 System.out.println(Character.isDigit('\u0030')); // 通過codepoint來判斷是否為數字 System.out.println(Character.isDigit(123)); // 判斷字符有沒有對應的unicode形式,就是通過unicode中是否定義了字符的unicode寫法 System.out.println("isDefined: " + Character.isDefined('!')); System.out.println(Character.isDefined(123)); // 判斷字符或者codepoint是否為字母 System.out.println("isLetter: " + Character.isLetter('a')); System.out.println("isLetter: " + Character.isLetter(65)); // 判斷是否為字母(26個字符)或者數字 System.out.print(Character.isLetterOrDigit('j')); System.out.print(Character.isLetterOrDigit(1234)); // 是否為合法java變量名要求的能用於開頭的字符(數字,字母下划線和$) System.out.println("isJavaLetter:" + Character.isJavaLetter('_')); // 功能同上,用於代替isJavaLetter方法 System.out.println("isJavaIdentifierStart: " + Character.isJavaIdentifierStart('@')); System.out.println("isJavaIdentifierStart: " + Character.isJavaIdentifierStart(123)); // 判斷是否為一個合法的java變量所包含的字符 System.out.println("isJavaIdentifierPart: " + Character.isJavaIdentifierPart('$')); // java7中的方法。判斷字符是否為形意字。比如中國字,日本字 // System.out.println(Character.isIdeographic('我')); // 小寫字母或者用小寫字母的codepoint轉大寫 System.out.println("toLowerCase:" + Character.toLowerCase('A')); System.out.println("toLowerCase:" + Character.toLowerCase(65)); // 大寫字母或者用大寫字母的codepoint轉小寫 System.out.println("toLowerCase:" + Character.toUpperCase('a')); System.out.println("toLowerCase:" + Character.toUpperCase(97));