字符类型

1char

字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示,例如 's' 表示一个字符。而 "s" 则表示一个字符串,虽然它只有一个字符,但由于使用双引号,所以它仍然表示字符串,而不是字符。

使用char关键字可定义字符变量。

  声明字符型变量,实例代码如下:

char x ='a';

由于字符aunicode表中的排序位置是97。因此,允许将上面的语句写成:

char x = 97;

CC++语言一样,Java语言也可以把字符作为整数对待。由于unicode编码采用无符号编码,可以存储65536个字符(0x0000)~0xffff),所以Java中的字符几乎可以处理所有国家的语言文字。若想得到一个065536之间的数所代表的unicode表中的相应位置上的字符,也必须使用char型显示转化。

  在项目中创建类Gess,编写如下代码,实现将unicode表上某些位置上的字符以及一些字符在unicode表中的位置在控制台上输出。

public class Gess {                                                                                           //定义类Examlpe

      public static void main(String[] args) {                                                        //主方法

            char word = 'd', word2 = '@';                                                                //定义char型变量

            int p = 23045, p2 = 45213;                                                                    //定义int型变量

            System.out.println("dunicode表中的顺序位置是:" + (int) word);

            System.out.println("@unicode表中的顺序位置是:" + (int) word2);

            System.out.println("unicode表中的第23045位是:" + (char) p);

            System.out.println("unicode表中的第45213位是:" + (char) p2);

      }

}

运行结果如图1所示。

 

           1  实例的运行结果

2.转义字符

转义字符是一种特殊的字符变量。转义字符以反斜线“\”开头,后跟一个或多个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”。例如,printf函数的格式串中用到的“\n”就是一个转义字符,意思是“回车换行”。Java中转义字符如表1所示。

1  转义字符表

转义字符

含义

\ddd

138制数据所表示的字符,如:\456

\dxxxx

416进制所表示的字符,如:\0052

\’

单引号字符

\\

反斜杠字符

\t

垂直制表符,将光标移到下一个制表符的位置

\r

回车

\n

换行

\b

退格

\f

换页

将转义字符赋值给字符变量时,与字符常量值一样需要使用单引号将转义字符起来。

,分别为字符变量c1赋值为'\\'、字符变量c2赋值为'\''、字符变量c3赋值为'\115'、字符变量c4赋值为'\u0052',字符变量c5赋值为'\u2605',然后输出。

char c1='\\';                                    //为变量c1赋值转义字符“\\”

char c2='\'';                                     //为变量c2赋值转义字符“\'”

char c3='\115';                                //为变量c3赋值转义字符“\115”表示的字符

char c4='\u0052';                             //为变量c4赋值转义字符“\u0052”表示的字符

char c5='\u2605';                             //为变量c5赋值转义字符“\u2605”表示的字符

System.out.println(c1);                     //输出结果为:\

System.out.println(c2);                     //输出结果为:'

System.out.println(c3);                     //输出结果为:M

System.out.println(c4);                     //输出结果为:R

System.out.println(c5);                     //输出结果为:

说明:unicode代码\u0052表示字符R,而unicode代码\u2605表示字符

上面的代码,在控制台输出的结果如图2所示。

2  控制台输出结果

Java中,对字符变量进行如下的赋值也是合法的:

      char char1='B'+1;                     //将字符常量值'B'与十进制整数1相加的结果赋给字符变量char1

      char char2='B'+'1';                     //将两个字符常量值'B''1'相加的结果赋给字符变量char2

      char char3=24+76;                    //将两个十进制整数2476相加的结果赋给字符变量char3

      char char4='n'-32;                     //该操作将得到大写的字母N'N'+32将得到小写的字母n

      System.out.println(char1);             //输出结果为:C

      System.out.println(char2);             //输出结果为:s

      System.out.println(char3);             //输出结果为:d

      System.out.println(char4);             //输出结果为:N

上面的代码,在控制台输出的结果如图3所示。

3  控制台输出结果

  在输出语句中使用转义字符,实例代码如下:

public class Temp {

   public static void main(String[] args) {

      System.out.println("\102");                 // 八进制编码的字符

      System.out.println("\u0042");              // 十六进制编码的字符

      System.out.println("苹果\t橘子\t香蕉");      // 使用制表符分割

      System.out.println("\\字符是反斜杠");         // 输出反斜杠

      System.out.println("\n换行字符");            // 输出回车

   }

}

实例运行结果如图4所示。

4 实例运行结果