当前位置: 首页 > article >正文

数据类型扩展02

1、字符串拓展

        所有的字符本质还是数字。

        char c1 = 'a';
        char c2 = '中';
        System.out.println("c1:"+c1);
        System.out.println("c1转换:"+(int)c1);
        System.out.println("c2:"+c2);
        System.out.println("c2转换:"+(int)c2);

执行结果

c1:a
c1转换:97
c2:中
c2转换:20013

1.1、字符

        字符(Character) 是对文字和符号的总称,例如汉字、拉丁字母、emoji 都是字符。在计算机中,一个字符由 2 部分组成:

  • 1、用户看到的图画
  • 2、字符的编码

1.2、字符集

        字符集(Character Set) 是多个字符与字符编码组成的系统,由于历史的原因,曾经发展出多种字符集。

Unicode 

        Unicode是一种用于字符编码的国际标准,它定义了世界上所有字符的唯一编号,并提供了一种将这些字符在计算机中表示和处理的方式。自从1991年开始发展以来,Unicode已经成为全球广泛使用的字符集和编码方案之一,无论是在传统的文字处理领域还是在现代化的互联网和移动应用程序中。

        1990年开始研发,1994年正式发布1.0版本,2022年9月13日发布15.0版本。

        Unicode 字符集的编码范围是 0x0000 - 0x10FFFF , 可以容纳一百多万个字符, 每个字符都有一个独一无二的编码,也即每个字符都有一个二进制数值和它对应,这里的二进制数值也叫 码点 , 比如:汉字 "中" 的 码点是 0x4E2D, 大写字母 A 的码点是 0x41, 具体字符对应的 Unicode 编码可以查询 Unicode字符编码表。

1.3、编码格式

        Unicode 本身只定义了字符与码点的映射关系,相当于定义了一套标准,而这套标准真正在计算机中落地时,则有多种编码格式。目前常见到的有 3 种编码格式:UTF-8、UTF-16 和 UTF-32。

        UTF-8 编码

        UTF-8 是 1~4 个字节的变长编码,相对来说最节省空间。 下述规则表述与你在任何文章 / 百科里看到的规则表述不一样,但是逻辑上是一样的。因为我认为按照 “前缀无歧义” 的概念来理解最易懂。

  • 规则 1: 不同范围的码点值使用不同长度的编码;
  • 规则 2: 字节编码总长度为 1 时前缀为 0、总长度为 2 时前缀为 110、总长度为 3 时前缀为 1110、总长度为 4 时前缀为 11110 ;
  • 规则 3: 除了首个字节,字符编码中其余字节的前缀为 10

        可以看到,这种编码方式是不会存在前缀歧义的,也比较好理解。

        用一张表总结一下 3 种编码格式:

ASCIIUTF-8UTF-16UTF-32
编码空间0~7F0~10FFF0~10FFF0~10FFF
最小存储占用1124
最大存储占用1444

2、Java常用的转义字符

        “\t”为制表符,作用是对齐。长度不足8的字符会以8个长度为格式来输出,长度大于或等于8的字符会以8的倍数为格式输出。(注意:中文占两个字符,数字字母占一个)

         “\n”为换行符,作用是实现换行,功能类似回车。

        “\\”为一个\,作用就是输出一个\。

        “\"”为一个",作用就是输出一个\。“\'”为一个',作用就是输出一个' 。

        “\r”为一个回车,其功能为:

                1.将光标移至首字符串头“|caimingjie”
                2.将转义字符后的数字替换 从光标后开始的字符


http://www.kler.cn/a/137360.html

相关文章:

  • OSI 网络 7 层模型
  • openwrt 负载均衡方法 openwrt负载均衡本地源接口
  • MarkItDown的使用(将Word、Excel、PDF等转换为Markdown格式)
  • flask基础
  • C语言初阶【13】——打印一个数的每一位(递归和非递归实现)
  • xdoj 数字个数统计
  • Java修仙记之记录一次与前端女修士论道的经历
  • 数据治理之springboot项目入门
  • 3.6 Windows驱动开发:内核进程汇编与反汇编
  • 安装和初步使用 nn-Meter
  • 通过AppLink把拼多多热门榜单商品同步至小红书
  • Python基础学习__测试报告
  • 单元测试实战(四)MyBatis-Plus 的测试
  • 人机交互复习专题
  • 【阿里云】图像识别
  • 猫罐头牌子哪个好一点?精选5款口碑好的猫罐头推荐!
  • 在Python中调用imageJ开发
  • 【算法基础】高精度运算
  • 虾皮网同行数据丨虾皮数据工具-知虾:监控竞争对手数据的利器
  • uniapp heckbox-group实现多选
  • postgresql 行转列的例子
  • 请收藏!2023年全栈开发人员实战进阶指南终极版
  • 去除IDEA中代码的波浪线(黄色警示线)
  • 构建和应用卡尔曼滤波器 (KF)--扩展卡尔曼滤波器 (EKF)
  • 华为云cce中环境变量的使用
  • npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)