Java学习之旅第一季-11:数据类型之字符类型

Java除了处理数值数据类型外,还可以处理字母和符号,这些都可以称为字符(Character)。

Java使用Unicode编码,Unicode 定义了一个字符集,能够表示所有人类语言中的字符。标准的8位ASCII字符集是 Unicode 的一个子集,取值范围为 0 到 127。因此,ASCII 字符在 Java 中仍然是有效的字符。由于字符的表示是数字形式的,这意味着我们可以将之前提到的区间内的整数值转换为字符值。

Java 是为全球使用而设计的。因此,它需要使用一种能够表示世界上所有语言的字符集。Unicode 就是专门为这一目的而设计的标准字符集。当然,对于像英语、德语、西班牙语或法语这样的语言来说,使用 Unicode 是低效的,因为它们的字符可以用 8 位来表示。但为了实现全球通用性,这是必须付出的代价。

根据不同的操作系统,某些字符可能不被支持。这意味着这些字符不会显示出来,或者会被替换为一个无效的字符。对于空格字符也是如此。

字符串也可以理解为若干字符组成的,比如之前使用过的"Hello Java 25!"就是由字母,数字,开个及感叹号等组成。虽然在业务开发中很少直接使用字符,但字符串使用非常频繁。

11.1 char类型

字符数据类型占用2字节,16位无符号整数,采用UTF-16编码;在业务系统开发中使用不多。

可使用Character.MAX_VALUE和Character.MIN_VALUE获得最大值与最小值

Java开发中,使用char关键字声明的变量即是字符类型的数据,如果为其赋值,则应该是字符,java中字符字面量需要使用单引号引起来,其表示形式有一下几种:

  • 单引号引起来的单个字符:‘a’, ‘男’,这是最常见的类型,要注意单引号之间有且只能有一个字符

  • 字符转义序列: ‘\r’,\n’,‘\"’、‘\t’,这种形式一般用于字符串中

  • Unicode转义序列: ‘\u0041’,使用不多

  • 八进制转义序列: ‘\000’ ~ ‘\377’,使用不多

最常见的是如下的写法:

char c1 = 'a';

11.2 转义字符

转义字符一般用于表示不能直接显示的字符,以\开头,以下是常见的转义字符:

转义序列描述
\ddd八进制
\uxxxx十六进制Unicode字符
\’单引号
\"双引号
\\反斜杠
\r回车
\n新行
\t制表符
\b退格键
\s空格,Java 15新增
\继续行,出现在行的末尾,Java 15新增,用于文本块

在程序中声明char类型的变量并赋值为单引号,这时就需要使用转义:

char c2 = '\'';
System.out.println(c2);    // 输出单引号

如果在字符串字面量中使用转义字符也是同样的效果:

System.out.println("你好,我是\"老谭\"。\t\t我正在写代码...");

上面的字符串字面量中,为了输出双引号,只能使用转义字符的写法,否则要输出的双引号和包含字符的双引号凑成一对会产生语法错误,而制表符则是在输出产生Tab按键的效果,即产生空格。

11.3 ASCII码

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是一套基于拉丁字母的字符编码,共收录了 128 个字符,用一个字节就可以存储,它等同于国际标准 ISO/IEC 646。

以下是字母与数字对应的ASCII码:

小写字母ASCII码大写字母ASCII码数字ASCII码
a97A65048
b98B66149
c99C67250
d100D68351
e101E69452
f102F70553
g103G71654
h104H72755
i105I73856
j106J74957
k107K75
l108L76
m109M77
n110N78
o111O79
p112P80
q113Q81
r114R82
s115S83
t116T84
u117U85
v118V86
w119W87
x120X88
y121Y89
z122Z90

11.4 与整数之间的互相转换

char可以自动转换为对应的ASCII码,就相当于转换为一个参与数学运算的整数:

char c3 = 'a';
System.out.println(c3 + 1);      // 输出98

也可以将整数作为ASCII码转换为字符,但是需要在ASCII码前面加上小括号,其中内容为char,这是数据类型强制转换的语法:

System.out.println((char) 65);   // 输出A

11.5 小结

本小节主要介绍了Java中的字符数据类型以及预支相关的ASCII码,最后还介绍了它们之间的互相转换。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值