DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > MySQL > 常见问题

字符型

3.5 字符型

在Java中,用于存储字符的数据类型是char。然而,C/C++程序员要当心:Java中的char与C或C++中的char是不同的。在C/C++中,char的宽度是8位。而在Java中不是这样的。相反,Java使用Unicode表示字符。Unicode定义了一个完全国际化的字符集,能够表示全部人类语言中的所有字符。Unicode是数十种字符集的统一体,比如拉丁字符集、希腊字符集、阿拉伯字符集、斯拉夫语字符集、希伯来语字符集、日文字符集、韩文字符集等。为此,Unicode需要16位宽。因此,在Java中char是16位类型。char的范围为0~65 536。没有负的char值。著名的ASCII标准字符集,其范围仍然是0~127;而扩展的8位字符集ISO-Latin-1,其范围是0~255。既然Java的设计初衷是允许程序员编写在世界范围内均可使用的程序,那么使用Unicode表示字符是合理的。当然,对于英语、德语或法语这类语言,使用Unicode在一定程度上会降低效率,因为可以很容易地使用8位表示这类语言的字符。但这是为了在全球获得可移植性而必须付出的代价。

注意:

在http//www.unicode.org上可以找到有关Unicode的更多信息。

下面是演示char变量用法的一个程序:

 
这个程序显示如下所示的输出: 
  1. ch1 and ch2: X Y  

注意,ch1被赋值为88,该值是与字母X对应的ASCII(以及Unicode)值。前面提到过,ASCII字符集占用Unicode字符集中的前127个值。因此,在其他语言中对字符使用的所有“旧式技巧",在Java中仍然管用。

尽管char被设计成容纳Unicode字符,但它也可以用作整数类型,可以对char类型的变量执行算术运算。例如,可以将两个字符相加到一起,或者增加字符变量的值。分析下面的程序:

 
这个程序产生的输出如下所示: 
  1. ch1 contains X  
  2. ch1 is now Y  

在该程序中,首先将X赋给ch1,然后递增ch1的值。现在ch1中包含的结果Y,是ASCII(以及Unicode)序列中的下一个字符。

注意:

在Java的正式规范中,char被当作整数类型,这意味着它和int、short、long以及byte位于同一分类中。然而,因为char类型的主要用途是表示Unicode字符,所以通常考虑将char放到单独的分类中。


本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号