1. 程式人生 > >javaSE基礎篇之char

javaSE基礎篇之char

以下為個人觀點及網上總結:
1:概念
char字元型別,八大基本型別的一種;2位元組16位,在java中一個漢字或一個任意英文字元;
2:關於char為整數型

char n='好';
int k=(int)n;//型別轉換
System.out.println(k);//結果為22909
/*
因為char在Ascll等字元編碼中有對應的數值
**/

3:宣告

//宣告1
char a='a';//任意單個字元;加單引號
char a='好’;//任意中文字,加單引號
//宣告2
char a=22909//整數為D(十進位制) B(二進位制) H(十六進位制) O(八進位制)均可,輸出為對應編碼表的字元

4:運算(右面為輸出的型別)
//在char賦值情況下
單 ------字元
單+單 -------int型//在char範圍內
單+數字 ------------int型
//在int賦值情況下
單+單= ----------int型
(上面的單指的是單引號裡的值可為字元可為數字)
總之:在可續範圍內,char可轉為整數
以下例子來源於
(https://blog.csdn.net/ibelieve618/article/details/54948729)

char m='a';  ——a。
char m='a'+'b';  ——Ã。  //char型別相加,提升為int型別,輸出對應的字元。注,在CMD.exe用輸出結果是問題?,不同的編碼輸出顯示不一樣。Eclipse中須改成UTF-8。
int m='a'+'b';   ——195。//195沒有超出int範圍,直接輸出195。
char m='a'+b;  ——報錯。//因為b是一個賦值的變數。
char m=197;  ——Ã。 //輸出字元編碼表中對應的字元。
char m='197;  ——報錯。//因為有單引號,表示是字元,只允許放單個字元。
char m='a'+1;  ——b。//提升為int,計算結果98對應的字元是b。
char m='中'+'國';  ——42282。
char m='中'+'國'+'國'+'國';  ——報錯。int轉char有損失。因為結果已經超出char型別的範圍。
int m='中'+'國'+'國'+'國';  ——86820
char m='中'+1;  ——丮。//1是int,結果提升為int,輸出對應的字元。
//可重點檢視
char m='中'+"國";  ——報錯。String無法轉換為char。
System.out.println('中'+"國");  ——中國。//沒有變數附值的過程。String與任何字元用“+”相連,轉換為String。