java 的 compareTo() 函数中字符的层次结构

Hierarchy of characters in compareTo() function of java

我是新来的所以我不太清楚是否有针对不同问题等的部分。对此提前表示抱歉。

所以,我的问题是,谁能告诉我 java 的 compareTo() 函数中字符或字符串的层次结构。在这段代码中...

String s1 = "HELLO";
String s2 = "hello";
int c;
c = s1.compareTo(s2);
System.out.println(c);

这里输出的是-32,也就是说'H'小于'h'。所以我想知道字符从最高值到最低值排列的列表。提前致谢。

compareTo() 方法使用 Unicode 值来比较字符串。可在此处找到完整列表:https://en.wikipedia.org/wiki/List_of_Unicode_characters

在图表的 google 图像上查找 Unicode 值可能很有用。

compareTo 方法的工作原理如下:-

Syntax : 
int compareTo(String anotherString)
Parameters : 
anotherString :  the String to be compared.
Return Value :  
The value 0 if the argument is a string lexicographically equal to this string;
a value less than 0 if the argument is a string lexicographically greater than this string; 
and a value greater than 0 if the argument is a string lexicographically less than this string.

在你的情况下,你正在尝试比较

字符串 s1 = "HELLO"; // H 的 ASCII 值是 72

字符串 s2 = "hello"; // h 的 ASCII 值是 104

它会一个字符一个字符地比较,直到字符不同,然后return两个ASCII值相减,否则return 0.

在你的情况下,H 和 h 的值不同,return是 ASCII(H)-ASCII(h)=-32 的减法。

您可以在https://theasciicode.com.ar/ascii-printable-characters/capital-letter-z-uppercase-ascii-code-90.html

参考字符的不同ASCII值