总结:计算机中字符串比较大小的规则

一·背景:

1.网上很多教程都说的不完整,不明确,因此本人自己总结了一下

2.大家都知道,字符串比较的基本规则是按照字典顺序比较,但这个字典指的是什么呢?是新华字典还是英文字典?那如果是其他特殊字符又该如何比较大小呢?

二·先认识Unicode编码表:字符越靠后,对应的十进制值越大

查看Unicode编码表工具网站:
http://www.hipenpal.com/tool/characters_to_unicode_charts_in_simplified_chinese.php?unicode=118

三·单个字符之间比较规则:

任何字符都是先获取字符在Unicode编码表中对应的十进制值,再比较两个字符对应的十进制值。哪个字符对应的十进制值大,则该字符就大,这也就是所谓的字典顺序比较大小

1.Java编程中常用的Character类compareTo()方法比较单个字符大小:底层解析

在这里插入图片描述

其实就是将前一个字符的十进制值减去后一个字符的十进制值,最后返回一个十进制数字;然后再根据这个返回的值去进行判断两个字符的大小或者进行字符排序(一般默认是Unicode编码表的字符排列顺序就是自然顺序或字典顺序,即字符越靠后,对应的十进制值越大,也叫字符越大)

注意:
(1)最后返回的数字表示:前一个字符相对于后一个字符在Unicode编码表中的位置关系。

(1-1)若前一个字符在后一个字符的前面则返回负数,且数字大小就是两个字符在Unicode编码表上相距的位数;
(1-2)若前一个字符在后一个字符的后面则返回正数,且数字大小就是两个字符在Unicode编码表上相距的位数;

(2)Unicode编码表里面包含各种英文、汉字、特殊字符等等

(3)大家口中常说的字符串比较是使用字典顺序,有时候也说是使用ASCII码表对应的值比较。先说结论,这两种说法是OK的但是不完整也不准确,且容易让初学者误解。这里的字典顺序并不是什么新华字典、英文字典等等,而是指的Unicode编码表;然而Unicode编码表是完全兼容ASCII表的,从ASCII编码表中获取英文字符对应的十进制值与从Unicode编码表中获取英文字符对应的十进制值是完全相等的,当然还有其他特殊字符等等也是如此;但是ASCII编码表由于是美国发明创建的,因此天生就不支持非英语国家的字符,尤其是没有中文字符。因此为了便于全球计算机互联互通,就得有个全球统一的字符集编码,这也就是大名鼎鼎的Unicode编码,也称“万国码”。但是其他字符集编码几乎没有被Unicode编码兼容,都需要进行相互转换才行。

2·案例演示:单个字符与单个字符之间比较大小

(1)两个汉字所在编码表的位置:汉字一在汉字万的前面7位处,如下图所示

在这里插入图片描述

(2)使用计算机字符相减计算两个字符的相距的位数:完全满足单个字符之间比较规则,汉字“万”对应的十进制值较大,则说明汉字“万”比汉字“一”大

在这里插入图片描述

四·两个字符串之间比较规则:

从两个字符串的左侧开头,依次分别获取两个字符串的单个字符,再依据单个字符之间的比较规则,判断哪个字符大,则它所属的字符串就大;若两者的单个字符相等,则依次分别再取下一位单个字符,再进行比较,直到其中某个字符串的最后一位;若此时两个字符串还没有分出大小结果,则会直接将两个字符串的长度相减给出数字结果。

注意:
(1)“你好22200000”跟“你好222”比较,前5位单个字符肯定相等,都取第6位单个字符时,明显第二个字符串没有第6位字符了;这种情况下计算机会直接使用,第一个字符串的长度减去第二个字符串长度,给出结果!

1.Java编程中常用的String类compareTo()方法比较两个字符串大小:底层解析,完全满足两个字符串的比较规则

在这里插入图片描述

2·案例演示:两个字符串之间进行比较大小

(1)使用计算机字符串比较结果:字符串“你好22200000”比字符串“你好222”大,如下图所示

在这里插入图片描述

(2)使用计算机字符串比较结果:字符串“你8888699”比字符串“你8888”大

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 字符串格式的图像是指将一张图像转换成一组字符和符号来描述图像的过程。这种方法在计算机图形学和信息处理得到了广泛应用。通过使用ASCII码或Unicode码的特定字符和符号,将图像的不同区域用相应的字符填充,再根据字符的数量和位置确定每个区域的灰度值,从而实现图像的转换。 字符串格式的图像具有易于理解和处理的优点,可以在不使用任何专业软件的情况下进行编辑和修改,且占用的空间相对较小。它广泛应用于字符动画、命令行界面、签名档、代码注释等方面。此外,在网络传输字符串格式的图像也具有一定的优势,可以节省带宽。 不过,字符串格式的图像也存在一些问题,比如由于字符数量有限,无法准确表达图像的每个细节,导致图像的清晰度和精度受到一定的限制。同时,在处理复杂图像时,字符之间的排列和间距也需要进行优化,否则可能会产生视觉上的错位和模糊。 综上所述,字符串格式的图像虽然存在一些局限性,但仍有广泛应用的前途。随着技术的不断发展,未来其应用领域也将不断扩展。 ### 回答2: 字符串格式的图像,在计算机领域指的是使用特定的字符来组成图像的一种方式。这种图像通常是基于文本的,使用字母、数字、符号等字符来表示图像的各种特征,而不是使用彩色或灰度像素。 字符串格式的图像在计算机编程、数据处理、图像处理领域应用广泛。例如,在文本编辑器字符画来展示图案,或者用ASCII码字符来表示简单、小时字体的文本。 此外,在数字图像处理字符串格式的图像也有一定的应用价值。可以用各种符号来代表像素的灰度值,通过字符的密度和排列方式来表示图像的各种细节和特征。这种方式可以减小图像文件的大小,便于传输和存储。 然而,由于字符串格式的图像分辨率低、色彩单一,因此其表现效果非常有限,无法满足高清晰、高保真的图像需求。 综上所述,字符串格式的图像虽然具有一定的应用价值,但其局限性也是显而易见的。在应用时需要根据实际需求进行选择。 ### 回答3: 字符串格式的图像是指用字符串来表示图像的一种编码方式。它是一种图像压缩技术,将图像的每个像素转化成字符的一个字符,从而将图像压缩至原来尺寸的几十分之一。 这种编码方式主要是用于文字信息传输和图像存储,可以节省带宽和存储空间。字符串格式的图像具有传输速度快、占用存储空间少等特点,在移动互联网时代得到了广泛应用。 对于使用字符串格式表示的图像,其还原成图像就是将字符字符按照规则转化成像素点的颜色值,在屏幕上进行呈现。这一过程需要借助于算法和程序进行处理,目前使用较广泛的算法是基于哈夫曼编码的算法。 字符串格式的图像虽然可以实现压缩,但其图像质量相对较低,细节不够清晰,容易出现模糊和失真的情况。因此,在某些对图像质量要求较高的领域,如医疗图像、卫星图像等,其应用还较为有限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ideal-cs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值