javaSE基礎篇之char
阿新 • • 發佈:2018-11-10
以下為個人觀點及網上總結:
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。