vb 字符串 比较大小的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/15 09:14:51
像A<a,ABC<AbC这类的我明白,请教各位,像“Integer”和“Int”比较是不是就比较e了?Int后面没有,就是Integer大了?
还有像汉语字符串是如何区分大小的?
汉语我没找见规律~一会儿T,一会儿F

楼主要多注意基础知识啊。要多看文档,多看书。

VB中字符串比较方式由Option Compare指定。默认是Binary,即二进制比较。

这样的话VB就是按照字符从左到右一个一个进行比对。每个字符的大小是由其编码决定的。比如"A"的ASCII码是65,"a"的ASCII码是97,因此"A"<"a"。

汉字也一样。"你"在Unicode编码中是4F60,"好"在Unicode编码中是597D,因此"你"<"好"。

————————————————
补充:楼上 独毛鹤说的是不正确的。
VB处理汉字不是按照“首先比较第一个字节的大小,再比较第二个”的,VB处理宽字符集的时候是按照16位即2个字节为一组处理的。举例"大"的Unicode码是5927,"人"的Unicode码是4EBA,如果先按照第一个字节进行比较的话那"大"<"人",但实际上VB的判断结果是"大">"人"。

关于字符编码,随便用任何一个16进制编辑软件(如UltraEdit)打开一个txt文件就可以看到。或者用:
Dim b() as Byte
b="你好"
然后查看b这个数组即可知道其Unicode编码

vb比较是按字节比较的,汉字为两个字节,首先比较第一个字节的大小,再比较第二个。汉字编码可以从【附件】-【TrueType造字程序】-【参照】里 或word中【插入】-【符号】的编码表中略知一二。

字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值
则 继续比较下一位 直到出现 2者不等。返回真或假
中文字符比较 你可以观察该字的拼音~和其个数 不过我想应该是按照字符库里的顺序来比较的

你试试比较下就知道了……

汉语