- 零基礎學Java程序設計
- 祝明慧編著
- 1537字
- 2022-05-06 19:55:58
2.4.1 單個字符

1.字符存儲
在Java語言中,字符的存儲類型為字符類型(char)。
助記:char是字符的英文單詞character的縮寫,其發音為[?k?r?kt?(r)]。
計算機只能直接處理數字,不能處理文本。所以,在存儲字符的時候,需要將每個字符轉化為數字。在轉化過程中,需要建立一套對應的轉化關系。這套轉化關系被稱為編碼。例如,常用的8位二進制的ASCII表就是一種編號。
(1)ASCII編碼:ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)是基于拉丁字母的一套計算機編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今通用的單字節編碼系統,并等同于國際標準ISO/IEC 646。表2.6所示的ASCII碼值表列出了常用的ASCII碼值。
表2.6 ASCII碼值表

續表

(2)Unicode編碼:8位二進制的ASCII編碼取值范圍為0~255,能夠表示的字符很少。為了表示更多的字符,Java語言的字符類型采用了Unicode編碼。Unicode編碼(統一碼、萬國碼、單一碼)是計算機科學領域里的一項業界標準,包括字符集、編碼方案等。Unicode是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言中的每個字符設定了統一且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換和處理的要求。
Unicode編碼占用2字節,如圖2.26所示。由于2字節整數的范圍為0~65535,因此可以表示65536個不同字符。
2.字符表示
(1)簡單形式:在日常生活中,單個字符的使用比較少。例如,在成績單中,A表示優秀,B表示良好。在Java語言中,單個字符被稱為字符常量。很多時候數字內容表達的并不一定是數值。例如,班級編號的2-1中,2表示年級,1表示班級。由于計算機能力有限,為了避免這類信息對計算機造成困擾,所以在使用字符時,需要使用單引號引起字符,形式如圖2.27所示。

圖2.26 Unicode編碼占2字節

圖2.27 單個字符表示形式
注意:單個字符可以是單個字母、數字、字或符號。
【示例2-7】下面將使用代碼展示單個字符。代碼如下:

運行結果如下:

注意:%c是printf的格式符,用來顯示字符。
助記:c是字符的英文單詞character的首字母。
(2)轉義字符形式:如果想輸出一個換行符,很多程序員會直接使用以下代碼:

使用這個代碼,自己都會覺得不習慣;另外,在嘗試編輯這行程序時,Java編譯器也會出現錯誤信息。這是因為Java無法分辨這個換行符是一行程序的結束還是一個字符。
為了避免類似問題的出現,Java使用轉義字符來表示換行符這類特殊的字符。在Java語言中,轉義字符通過反斜杠“\”與普通字符的組合,來表示一些特殊的字符。轉義字符中至少包含兩個字符,第一個字符是轉義符號“\”,第二個字符是需要表示的字符,如“\n”就是一個轉義字符。
轉義字符就是將字符原來的意思轉換掉。例如,“\n”的意思被轉換為換行符。Java編譯器在遇到“\n”這兩個字符時,就會對其進行轉義,把這兩個字符當成一個換行符。Java語言提供了多個轉義字符,如表2.7所示。
表2.7 轉義字符

【示例2-8】下面將使用轉義字符顯示一個單引號。代碼如下:

運行結果如下:

由于整數和字符有嚴格的對應關系,所以Java語言提供了八進制表示和十六進制表示。下面將依次講解這兩種表示形式。
(3)八進制形式:采用八進制表示字符可以有兩種形式,分別為類似轉義字符的形式和直接形式。下面將依次講解這兩種形式。
使用類似轉義字符的形式表示字符,需要在單引號中加入反斜杠及八進制,如圖2.28所示。

圖2.28 采用八進制表示字符
注意:圖中的八進制可以是1~3位。
【示例2-9】下面將使用類似轉義字符的形式表示字符。代碼如下:

運行結果如下:

直接形式,就是直接使用八進制表示字符,如065,表示的就是字符5。
(4)十六進制形式:采用十六進制表示字符,需要在單引號中加入反斜杠、u及十六進制,如圖2.29所示。

圖2.29 采用十六進制表示字符
注意:圖中的十六進制必須是4位。
【示例2-10】下面將使用類似轉義字符的形式表示字符。代碼如下:

運行結果如下:

總結以上內容,Java語言共支持4種字符表示方式,如表2.8所示。
表2.8 字符表示方式

- 軟件安全技術
- Vue.js 3.x快速入門
- 計算思維與算法入門
- Visual Basic程序開發(學習筆記)
- 實戰Java高并發程序設計(第3版)
- Instant Nancy Web Development
- Access 2010數據庫應用技術(第2版)
- R語言與網絡輿情處理
- Learning PHP 7
- Raspberry Pi Robotic Blueprints
- OpenCV 3計算機視覺:Python語言實現(原書第2版)
- Drupal 8 Development Cookbook(Second Edition)
- JBoss AS 7 Development
- 零基礎學Java(第5版)
- Ionic Framework By Example