W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
char數(shù)據(jù)類型是16位無符號Java基元數(shù)據(jù)類型。它表示Unicode字符。
請注意,char是無符號數(shù)據(jù)類型。因此,char變量不能為負值。
字符數(shù)據(jù)類型的范圍為0到65535,這與Unicode集的范圍相同。
字符字面量表示char數(shù)據(jù)類型的值。 Java中的字符字面量可以用以下格式表示:
字符可以通過用單引號括起來表示。
以下代碼段使用此形式為char變量賦值:
char c1 = 'A'; char c2 = 'L'; char c3 = '5'; char c4 = '/';
用雙引號括起來的字符序列是一個String字面量。
不能將字符串字面量分配給char變量,即使String字面量只有一個字符。
字符字面量可以表示為字符轉(zhuǎn)義序列。
字符轉(zhuǎn)義序列以反斜杠開頭,后面緊跟一個字符,并且都用單引號括起來。
有八個預(yù)定義的字符轉(zhuǎn)義序列,如下表所列。
字符轉(zhuǎn)義序列 | 描述 |
---|---|
'\n' | 換行 |
'\r' | 回車 |
'\f' | 表單Feed |
'\b' | 退格 |
'\t' | 標簽 |
'\\' | 反斜杠 |
'\"' | 雙引號 |
'\'' | 單引號 |
Java中只有八個字符轉(zhuǎn)義序列。我們不能定義你自己的字符轉(zhuǎn)義序列。
char c1 = "\n"; // Assigns a linefeed to c1 char c2 = "\""; // Assigns double quote to c2 char c3 = "\a"; // A compile-time error. Invalid character escape sequence
字符字面量可以表示為“\ uxxxx”形式的Unicode轉(zhuǎn)義序列。
這里, \u
表示Unicode轉(zhuǎn)義序列的開始,xxxx正好表示四個十六進制數(shù)字。
由xxxx表示的值是字符的Unicode值。
字符'A'有65 65十進制可以用十六進制表示為41的值的Unicode值。
因此,字符'A'可以用Unicode轉(zhuǎn)義序列表示為'\ u0041'。
以下代碼將相同的字符“A”分配給char變量c1和c2:
char c1 = "A"; char c2 = "\u0041"; // Same as c2 = "A"
字符文字可以表示為形式為'\ nnn'的八進制轉(zhuǎn)義序列。
這里,n是八進制數(shù)(0-7)。八進制轉(zhuǎn)義序列的范圍是'\ 000'到'\ 377'。
八進制數(shù)377與十進制數(shù)255相同。因此,使用八進制轉(zhuǎn)義序列,我們可以表示Unicode代碼范圍從0到255個十進制整數(shù)的字符。
Unicode字符集(代碼范圍0到65535)可以表示為Unicode轉(zhuǎn)義序列('\ uxxxx')。
Unicode字符集(代碼范圍0到65535)可以表示為Unicode轉(zhuǎn)義序列('\ uxxxx')。
當(dāng)為字符變量分配一個int字面量時,char變量表示其Unicode代碼等于該字符串表示的值的字符。
字符'a'的Unicode代碼是97.十進制值97被表示為141八進制和61十六進制。
下面的代碼顯示了如何使用int字面值97來表示Unicode字符'a'。
char c1 = 97; // Same as c1 = "a"; c1 = "\141"; c1 = "\u0061";
這里是一個程序,演示char變量:
public class Main { public static void main(String args[]) { char ch1, ch2; ch1 = 88; // code for X ch2 = "Y"; System.out.print("ch1 and ch2: "); System.out.println(ch1 + " " + ch2); } }
ch1
被分配值88,它是對應(yīng)于字母X的ASCII和Unicode值。ASCII字符集占據(jù)Unicode字符集中的前127個值。
上面的代碼生成以下結(jié)果。
char旨在保存Unicode字符,但它也可以用作整數(shù)類型,您可以在其上執(zhí)行算術(shù)運算。
例如,您可以將兩個字符添加在一起,或者增加一個字符變量的值。
public class Main { public static void main(String args[]) { char ch1; ch1 = "X"; System.out.println("ch1 contains " + ch1); ch1++; // increment ch1 System.out.println("ch1 is now " + ch1); } }
在程序中,首先給ch1賦值X.接下來,ch1遞增。這導(dǎo)致ch1包含Y,ASCII(和Unicode)序列中的下一個字符。
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: