Java char數(shù)據(jù)類型

2022-01-08 14:45 更新

Java數(shù)據(jù)類型教程 - Java char數(shù)據(jù)類型


char數(shù)據(jù)類型是16位無符號(hào)Java基元數(shù)據(jù)類型。它表示Unicode字符。

請注意,char是無符號(hào)數(shù)據(jù)類型。因此,char變量不能為負(fù)值。

字符數(shù)據(jù)類型的范圍為0到65535,這與Unicode集的范圍相同。

字符字面量

字符字面量表示char數(shù)據(jù)類型的值。 Java中的字符字面量可以用以下格式表示:

  • 用單引號(hào)括起來的字符
  • 作為字符轉(zhuǎn)義序列
  • 作為Unicode轉(zhuǎn)義序列
  • 作為八進(jìn)制轉(zhuǎn)義序列

字符可以通過用單引號(hào)括起來表示。

以下代碼段使用此形式為char變量賦值:

char   c1  = 'A'; 
char   c2  = 'L'; 
char   c3  = '5'; 
char   c4  = '/';

用雙引號(hào)括起來的字符序列是一個(gè)String字面量。

不能將字符串字面量分配給char變量,即使String字面量只有一個(gè)字符。


字符轉(zhuǎn)義序列

字符字面量可以表示為字符轉(zhuǎn)義序列。

字符轉(zhuǎn)義序列以反斜杠開頭,后面緊跟一個(gè)字符,并且都用單引號(hào)括起來。

有八個(gè)預(yù)定義的字符轉(zhuǎn)義序列,如下表所列。

字符轉(zhuǎn)義序列描述
'\n'換行
'\r'回車
'\f'表單Feed
'\b'退格
'\t'標(biāo)簽
'\\'反斜杠
'\"'雙引號(hào)
'\''單引號(hào)

Java中只有八個(gè)字符轉(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

Unicode

字符字面量可以表示為“\ uxxxx”形式的Unicode轉(zhuǎn)義序列。

這里, \u 表示Unicode轉(zhuǎn)義序列的開始,xxxx正好表示四個(gè)十六進(jìn)制數(shù)字。

由xxxx表示的值是字符的Unicode值。

字符'A'有65 65十進(jìn)制可以用十六進(jìn)制表示為41的值的Unicode值。

因此,字符'A'可以用Unicode轉(zhuǎn)義序列表示為'\ u0041'。

以下代碼將相同的字符“A”分配給char變量c1和c2:

char c1  = "A";
char c2  = "\u0041"; // Same as  c2  = "A"

字符文字可以表示為形式為'\ nnn'的八進(jìn)制轉(zhuǎn)義序列。

這里,n是八進(jìn)制數(shù)(0-7)。八進(jìn)制轉(zhuǎn)義序列的范圍是'\ 000'到'\ 377'。

八進(jìn)制數(shù)377與十進(jìn)制數(shù)255相同。因此,使用八進(jìn)制轉(zhuǎn)義序列,我們可以表示Unicode代碼范圍從0到255個(gè)十進(jìn)制整數(shù)的字符。

Unicode字符集(代碼范圍0到65535)可以表示為Unicode轉(zhuǎn)義序列('\ uxxxx')。

Unicode字符集(代碼范圍0到65535)可以表示為Unicode轉(zhuǎn)義序列('\ uxxxx')。

當(dāng)為字符變量分配一個(gè)int字面量時(shí),char變量表示其Unicode代碼等于該字符串表示的值的字符。

字符'a'的Unicode代碼是97.十進(jìn)制值97被表示為141八進(jìn)制和61十六進(jìn)制。

下面的代碼顯示了如何使用int字面值97來表示Unicode字符'a'。

char   c1  = 97;  // Same as  
c1  = "a"; 
c1  = "\141"; 
c1  = "\u0061";

例子

這里是一個(gè)程序,演示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個(gè)值。

上面的代碼生成以下結(jié)果。

例2

char旨在保存Unicode字符,但它也可以用作整數(shù)類型,您可以在其上執(zhí)行算術(shù)運(yùn)算。

例如,您可以將兩個(gè)字符添加在一起,或者增加一個(gè)字符變量的值。

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)序列中的下一個(gè)字符。

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)