鍍金池/ 教程/ Java/ Java char數(shù)據(jù)類型
Java int數(shù)據(jù)類型
Java字符串開關(switch用法)
Java byte數(shù)據(jù)類型
Java字符串轉換
Java long數(shù)據(jù)類型
Java下劃線數(shù)字面量
Java可變長度數(shù)組
Java字符串算法
Java double數(shù)據(jù)類型
Java字符串搜索
Java boolean數(shù)據(jù)類型
Java原始數(shù)據(jù)類型
Java布爾包裝類
Java char數(shù)據(jù)類型
Java字符串比較
Java StringBuilder和StringBuffer用法
Java數(shù)據(jù)類型教程
Java數(shù)組復制
Java字符串編輯(修剪字符串)
Java字符數(shù)據(jù)類型
Java數(shù)組類型
Java數(shù)組參數(shù)
Java無符號數(shù)據(jù)類型
Java數(shù)組元素
Java字符串字符
Java字符串創(chuàng)建和長度
Java數(shù)值類型包裝器
Java自動裝箱和拆箱
Java數(shù)據(jù)類型簡介
Java short數(shù)據(jù)類型
Java字符串類型
Java float數(shù)據(jù)類型
Java多維數(shù)組
Java數(shù)據(jù)類型包裝器

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

char數(shù)據(jù)類型是16位無符號Java基元數(shù)據(jù)類型。 它表示Unicode字符。請注意,char是無符號數(shù)據(jù)類型。 因此,char變量不能為負值。字符數(shù)據(jù)類型的范圍為065535,這與Unicode集的范圍相同。

字符字面量

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

  • 字符需要用單引號括起來
  • 作為字符轉義序列
  • 作為Unicode轉義序列
  • 作為八進制轉義序列

字符可以通過用單引號括起來表示。以下代碼段使用此形式為char變量賦值:

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

用雙引號括起來的字符序列是一個String字面量。不能將字符串文字分配給char變量,即使String文字只有一個字符。

字符轉義序列

字符字面量可以表示為字符轉義序列。字符轉義序列以反斜杠開頭,后面緊跟一個字符,并且都用單引號括起來。

有八個預定義的字符轉義序列,如下表所列。

字符轉義序列 描述
‘\n’ 換行
‘\r’ 回車
‘\f’ 換頁
‘\b’ 退格
‘\t’ 制表
‘\‘ 反斜杠
‘\”‘ 雙引號
‘\’’ 單引號

Java中只有八個字符轉義序列。不能定義自己的字符轉義序列。

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轉義序列。這里,\u表示Unicode轉義序列的開始,xxxx正好表示四個十六進制數(shù)字。

xxxx表示的值是字符的Unicode值。字符“A”的Unicode值為65。十進制值65可以用十六進制表示為41。

因此,字符’A‘可以用Unicode轉義序列表示為’\u0041‘。以下代碼將相同的字符“A”分配給char變量c1c2

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

字符文字可以表示為形式為’\nnn‘的八進制轉義序列。這里,n是八進制數(shù)(0-7)。 八進制轉義序列的范圍是’\000‘到’\377‘。
八進制數(shù)377與十進制數(shù)255相同。因此,使用八進制轉義序列,可以表示Unicode代碼范圍從0255個十進制整數(shù)的字符。

Unicode字符集(代碼范圍065535)可以表示為Unicode轉義序列(‘\uxxxx‘)。如果int文本在0-65535范圍內(nèi),可以為int變量賦值。

當為字符變量分配一個int字面量時,char變量表示其Unicode代碼等于該字符串表示的值的字符。字符’a‘的Unicode代碼是97。十進制值97被表示為141八進制和61十六進制。
下面的代碼顯示了如何使用int字面值97來表示Unicode字符’a‘。

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

示例-1

這里是一個程序用來演示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,它是對應于字母XASCIIUnicode值。ASCII字符集占據(jù)Unicode字符集中的前127個值。

上面的代碼生成以下結果。

ch1 and ch2: X Y

實例-2

char用來保存Unicode字符,但它也可以用來保存整數(shù)類型,可以在其上執(zhí)行算術運算。例如,可以將兩個字符添加在一起,或者增加一個字符變量的值。

在程序中,ch1首先給定值X。 接下來,ch1遞增。這導致ch1包含Y值,ASCII(和Unicode)序列中的下一個字符。

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 contains X
ch1 is now Y