Logo

郎哥编程

Java字符类型

2018-01-04 879

前面两个小节讨论了用于存储数值的数据类型。另外还经常会遇到需要存储并操纵字符型数据的情况。例如:计算数值表达式时,需要存储运算符,这时需要一种可以存储单个字符数据的数据类型。Java语言提供了一种char数据类型,可以满足存储单个字符的需要。

Java语言中,char占2个字节的存储空间,即可以存储英文字符,也可以存储单个汉字,一个汉字编码也占2个字节的存储空间。

char变量可按如下方式声明:

char  code='a'; 

任意单个字符,加单引号。

char  code ='中';

任意单个中文字,加单引号。

char  code =111; 

整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。

示例1:字符赋值并输出到命令行窗口

在D盘Java目录下,新建“CharSample.java”文件。用记事本打开“CharSample.java”文件,输入以下代码:

public  class  CharSample {
  public static void main(String args[])
  {
     char  ch =  'A';
     System.out.println("ch =" + ch);    
  }
}

编译“CharSample.java”文件,在命令行窗口输入“javac  CharSample.java”并执行命令,编译通过后,在命令行窗口输入“java  CharSample”运行Java程序,命令行窗口显示如下信息:

                                 

a056.png

           

图 4-8  char类型示例1输出结果

从上图可以看出,程序输出了字符A。

示例2:整数赋值并输出到命令行窗口

用记事本打开D盘Java目录下“CharSample.java”文件,修改代码如下:

public  class  CharSample {
  public static void main(String args[])
  {
     char  ch =  65;
     System.out.println("ch =" + ch);    
  }
}

编译“CharSample.java”文件,在命令行窗口输入“javac  CharSample.java”并执行命令,编译通过后,在命令行窗口输入“java  CharSample”运行Java程序,命令行窗口显示如下信息:

a057.png


图 4-9 char类型示例2输出结果

从输出结果可以看出,char类型的变量ch被赋值为65,命令行窗口输出的仍然是字符A。这是因为字符A在ASCII码表中的十进制数值是65,把数值65赋值给char类型的变量ch,相当于把字符A赋值给ch。

示例3:中文字符赋值并输出到命令行窗口

用记事本打开D盘Java目录下“CharSample.java”文件,修改代码如下:

public  class  CharSample {
  public static void main(String args[])
  {
     char  ch =  '中';
     System.out.println("ch =" + ch);    
  }
}

编译“CharSample.java”文件,在命令行窗口输入“javac  CharSample.java”并执行命令,编译通过后,在命令行窗口输入“java  CharSample”运行Java程序,命令行窗口显示如下信息:

a058.png


图 4-10 char类型示例3输出结果

从输出结果可以看出,命令行窗口按预期输出了中文字符。

示例4:中文字符编码赋值并输出到命令行窗口

中文字符“中”在Unicode编码为十六进制0X4e2d,将编码赋值给字符型变量。用记事本打开D盘Java目录下“CharSample.java”文件,修改代码如下:

public  class  CharSample {
  public static void main(String args[])
  {
     char  ch =  0X4e2d;
     System.out.println("ch =" + ch);    
  }
}

编译“CharSample.java”文件,在命令行窗口输入“javac  CharSample.java”并执行命令,编译通过后,在命令行窗口输入“java  CharSample”运行Java程序,命令行窗口显示如下信息:

a059.png


图 4-11 char类型示例4输出结果

从输出结果可以看出,把中文字符“中”的Unicode编码数值赋值给char型变量ch,命令行窗口仍然输出中文字符“中”。

示例5:多个中文字符编码赋值并输出到命令行窗口

可以尝试把多个中文字符赋值给char型变量,查看输出结果。用记事本打开D盘Java目录下“CharSample.java”文件,修改代码如下:

public  class  CharSample {
  public static void main(String args[])
  {
     char  ch =  '经济';
     System.out.println("ch =" + ch);    
  }
}

编译“CharSample.java”文件,在命令行窗口输入“javac  CharSample.java”并执行命令,编译通过后,在命令行窗口输入“java  CharSample”运行Java程序,命令行窗口显示如下信息:

a060.png


图 4-12 char类型示例5输出结果

 

编译器给出了“未结束的字符文字”错误信息,从给出的错误信息可以验证,字符型变量只能接受单个英文或中文字符,对char型变量不能进行多个字符的赋值。

 知识点拨.png


char型变量只能存储单个英文和中文字符,即可以把字符直接赋值给char型变量,也可以直接把字符所在字符集的编码赋值给char型变量,Java输出char型变量时,输出到显示设备(如电脑屏幕)的是字符本身。


 作业.png


 

(1)下面的那个赋值语句是正确的()

A.char  ch = 0X80;

B.char  ch =a;

C.char  ch=ab

D.char  ch=’ab’

(2)下面的程序代码,输出的正确结果是()

public  class  CharSample {
  public static void main(String args[])
  {
     char  ch =  97;
     System.out.println("ch =" + ch);    
  }
}

A.D

B.97

C.A

D.a

(3)在Java语言中,char型变量占多少字节()

A.4

B.2

C.1

D.8


代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
张文华 2018-03-26 17:27