数据类型扩展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.将转义字符后的数字替换 从光标后开始的字符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/172359.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux:动静态库

目录 一、软硬链接 1、软链接 2、硬链接 二、动态库和静态库 编写一个库 ①静态库 使用静态库的方法 ②动态库 使用动态库的方法 库存在的意义 一、软硬链接 软硬链接的本质区别就是:有无独立的inode 软链接有独立的inode,也就意味着软链接是一…

redis高可用---持久化

redis高可用 在集群当中有一个非常重要的指标,提供正常服务的时间的百分比(365天) 99.9%,redis高可用含义更广泛,支持服务是指标之一,数据容量扩展,数局的安全性。(容量、安全性) redis中实现高…

【HCSD大咖直播】亲授大厂面试秘诀【云驻共创】

同学们,毕业季是否找到了自己心仪的工作呢?是否了解大厂面试流程、要求以及技巧呢?华为云IoT高级工程师,传授大厂面试秘诀,教大家如何轻松get大厂offer!提前为大厂面试做准备,赢在起跑线&#x…

新安装win11,搜索框无法输入的问题

正确的做法是如下: 1首先进入win11系统,在搜索框中输入“ 控制面板 ”将其打开2在控制面板中找到“时间和语言“ 标题 再选择“ 语言和区域”, 标题 在显示的语言上面,点击省略号,进入语言选项 标题 在键盘处,删除不需要的输入法…

C++纯虚函数和抽象类 制作饮品案例(涉及知识点:继承,多态,实例化继承抽象类的子类,多文件实现项目)

一.纯虚函数的由来 在多态中&#xff0c;通常父类中虚函数的实现是毫无意义的&#xff0c;主要都是调用子类重写的内容。例如&#xff1a; #include<iostream>using namespace std;class AbstractCalculator { public:int m_Num1;int m_Num2;virtual int getResult(){r…

docker和docker-compose生产的容器,不在同一个网段,解决方式

在实际项目中&#xff0c;使用docker run xxXx 和docker-compose up -d 不在同一个网段&#xff0c;一个是默认是172.17.x.x, 另一个是172.19.x.x。为解决这个问题需要自定义一个网络&#xff0c;我命名为“my-bridge” 首先熟悉几条命令&#xff1a; docker network ls 或…

如何理解低代码开发工具?

目录 一、低代码平台是什么 1. 数据输入 2. 数据流转 3. 数据加工 4. 数据输出 &#xff08;1&#xff09;视图&#xff1a;单表的数据的简单展示 &#xff08;2&#xff09;看板&#xff1a;提供单表、多表数据的多种图表组合展示 二、低代码能力 ➪ 全栈可视化编程&#xff1…

你知道Linux操作系统的前世今生吗?Linux系统又该如何搭建呢?

文章目录 前言1. Linux 是什么1.1 Unix & Linux 发展历程图1.2 Linux 的发展1.3 Linux 的发行版 2. Linux 环境搭建2.1 环境搭建方式2.2 使用云服务器 3. 使用终端软件连接到 Linux3.1 什么是终端软件3.2 下载安装 XShell3.3 使用 XShell 登陆主机 总结 前言 可能很多人都…

labelImg

labelImg 在anaconda虚拟环境中安装labelImg 进入conda虚拟环境DL2中 输入命令&#xff1a; pip install PyQt5 pip install pyqt5-tools pip install lxml pip install labelimg PyQt5:是用于创建GUI应用程序的跨平台工具包&#xff0c;它将Python与Qt库融为一体 Lxml&#…

深信服技术认证“SCSA-S”划重点:渗透测试工具使用

为帮助大家更加系统化的学习网络安全知识&#xff0c;尽快通过深信服安全服务认证工程师认证&#xff0c;深信服推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师&#xff08;…

CVE-2023-0179提权利用

前言 在CVE-2023-0179-Nftables整型溢出中&#xff0c;分析了漏洞的成因&#xff0c;接下来分析漏洞的利用。 漏洞利用 根据漏洞成因可以知道&#xff0c;payload_eval_copy_vlan函数存在整型溢出&#xff0c;导致我们将vlan头部结构拷贝到寄存器&#xff08;NFT_REG32_00-N…

【SpringBoot】通过profiles设置环境

效果图&#xff0c;通过profiles设置环境 在父级pom.xml中添加配置 <profiles><profile><id>dev</id><properties><application.environment>dev</application.environment></properties><activation><activeByDefau…

OceanBase:OBServer节点管理

目录 1.查看节点 2.添加节点 2.1 创建数据目录 2.2.OceanBase 运行时所依赖的部分三方动态库 2.3.安装 OceanBase 数据库的 RPM 包 2.4.启动节点 observer 进程 2.5.向集群中添加节点 3.隔离节点 4.重启节点 4.1 停止服务 4.2 转储 4.3 关闭进程 4.4 启动进程 4.…

【原创】为MybatisPlus增加一个逻辑删除插件,让XML中的SQL也能自动增加逻辑删除功能

前言 看到这个标题有人就要说了&#xff0c;D哥啊&#xff0c;MybatisPlus不是本来就有逻辑删除的配置吗&#xff0c;比如TableLogic注解&#xff0c;配置文件里也能添加如下配置设置逻辑删除。 mybatis-plus:mapper-locations: classpath*:mapper/*.xmlconfiguration:mapUnd…

Java-认识String类

本章重点&#xff1a; 1. 认识 String 类 2. 了解 String 类的基本用法 3. 熟练掌握 String 类的常见操作 4. 认识字符串常量池 5. 认识 StringBuffer 和 StringBuilder 1.String类的重要性 在C语言中已经涉及到字符串了&#xff0c;但是在C语言中要表示字符串只能使用字符数组…

C++中的内存管理

✨前言✨ &#x1f4d8; 博客主页&#xff1a;to Keep博客主页 &#x1f646;欢迎关注&#xff0c;&#x1f44d;点赞&#xff0c;&#x1f4dd;留言评论 ⏳首发时间&#xff1a;2023年11月21日 &#x1f4e8; 博主码云地址&#xff1a;博主码云地址 &#x1f4d5;参考书籍&…

如何选择适合的开源框架来构建微服务架构?

随着科技的飞速发展&#xff0c;云计算和大规模应用的需求日益显著&#xff0c;这促使微服务架构在软件开发领域中占据了主流地位。微服务架构的广泛应用为开发人员提供了灵活性、可伸缩性和高可用性&#xff0c;从而推动了快速的应用程序开发。然而&#xff0c;在构建微服务架…

ky10 server x86 安装、更新openssl3.1.4(在线编译安装、离线安装)

查看openssl版本 openssl version 离线编译安装升级 #!/bin/shOPENSSLVER3.1.4OPENSSL_Vopenssl versionecho "当前OpenSSL 版本 ${OPENSSL_V}" #------------------------------------------------ #wget https://www.openssl.org/source/openssl-3.1.4.tar.gzech…

git撤销某一次commit提交

一&#xff1a;撤销上一次commit提交&#xff0c;但不删除修改的代码 可以使用使用VSCode 二&#xff1a;使用 git reset --hard命令删除提交时&#xff0c;将会删除该提交及其之后的所有更改&#xff08;相当于你想要回滚到的提交的提交ID&#xff09; git reset --hard 版本…

ubuntu18.04安装并运行ORB-SLAM2

查看版本号 lsb_release -a 换源 Ubuntu系统自带的源都是国外的网址&#xff0c;国内用户在使用的时候下载比较慢甚至无法获取&#xff0c;需要替换成国内的镜像源 备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.old 打开文件 sudo gedit /etc/apt/so…