“全栈2019”Java第十五章:Unicode与转义字符

1,199 阅读4分钟
原文链接: www.toutiao.com

难度

初级

学习时间

10分钟

适合人群

零基础

开发语言

Java

开发环境

  • JDK v11
  • IntelliJ IDEA v2018.3

1.Unicode

“全栈2019”Java第十五章:Unicode与转义字符

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。

“全栈2019”Java第十五章:Unicode与转义字符

最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),

“全栈2019”Java第十五章:Unicode与转义字符

所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),

“全栈2019”Java第十五章:Unicode与转义字符

0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,

“全栈2019”Java第十五章:Unicode与转义字符

比如大写字母A的编码是65,小写字母z的编码是122。

“全栈2019”Java第十五章:Unicode与转义字符

如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

“全栈2019”Java第十五章:Unicode与转义字符

类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

“全栈2019”Java第十五章:Unicode与转义字符

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

2.Java中的Unicode

“全栈2019”Java第十五章:Unicode与转义字符

在Java中,char和String可以包含任何Unicode(UTF-16)字符。

“全栈2019”Java第十五章:Unicode与转义字符

如果您的编辑器和文件系统允许,您可以直接在代码中使用这些字符。如果没有,您可以使用“Unicode转义”,例如'\u4E00'(中文“一”)。

“全栈2019”Java第十五章:Unicode与转义字符

始终对char文字使用“单引号”,

“全栈2019”Java第十五章:Unicode与转义字符

对String文字使用“双引号”。

3.特殊的转义字符

Java编程语言还支持一些特殊的转义序列char和String文字:

  • (退格)
  • (制表符)
  • (换行)
  • (换页)
  • (回车)
  • "(双引号)
  • '(单引号)
  • \(反斜杠)

接下来,我们依次演示这几个特殊的转义字符。

(退格)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

可能有的同学,有些疑惑,为什么只打印“好”呢?注意,是退格,不是空格,它会清除前面一个字符。例如,当打印第一个字符“大”之后,遇到“”,那么就清除前面一个字符,也就是“大”被清除掉了;当打印第三个字符“家”之后,再次遇到“”,同理清除前面一个字符,也就是“家”被清除掉了;打印最后一个字符“好”结束,所以只剩下“好”。

(制表符)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

(换行)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

(换页)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

换页符可能大家都不太熟悉,过去连续纸张打印时,将纸空白着走到那个折线的地方也就是一张新纸的地方从新开始打印。看起来就像加了一个空格。

(回车)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

咦?不是说好了,是回车吗?不应该是

这样吗?怎么会是只有一个“好”呢?这里可能大家有点误会了,我们的“ ”的意思是打印头换到本行行首。也就是打印玩“大”的时候,不换行从头开始打第二个字,也就是“家”,这时,“大”没了,“家”还在。接着,不换行从头开始打第三个字,也就是“好”,这时,“家”没了,“好”还在。所以,最后只剩下“好”。

"(双引号)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

'(单引号)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

\(反斜杠)

“全栈2019”Java第十五章:Unicode与转义字符

运行结果:

“全栈2019”Java第十五章:Unicode与转义字符

至此,Java中Unicode与转义字符相关内容讲解先告一段落,更多内容请持续关注。

答疑

如果大家有问题或想了解更多前沿技术,请在下方留言或评论,我会为大家解答。

上一章

“全栈2019”Java第十四章:二进制、八进制、十六进制

下一章

“全栈2019”Java第十六章:下划线在数字中的意义

学习小组

加入同步学习小组,共同交流与进步。

  • 方式一:关注头条号gorhaf,私信“Java学习小组”。
  • 方式二:关注公众号gorhaf,回复“Java学习小组”。

全栈工程师学习计划

关注我们,加入“全栈工程师学习计划”。

“全栈2019”Java第十五章:Unicode与转义字符

版权声明

原创不易,未经允许不得转载!