我真的很好奇。为什么system.out.println(“0:00.compareto(“0”));结果是3?我希望10是58的ascii码,0的ascii码是48。
ff29svar1#
请阅读文档 String.compareTo :https://docs.oracle.com/javase/7/docs/api/java/lang/string.html#compareto(java.lang.string)如果它们在一个或多个索引位置具有不同的字符,则k是此类索引的最小值;然后,其在位置k处的字符具有较小值的字符串(通过使用<运算符确定)按字典顺序排在另一个字符串之前。在本例中,compareto返回两个字符串中位置k处的两个字符值之差,即:
String.compareTo
this.charAt(k)-anotherString.charAt(k)
如果没有索引位置使它们不同,那么按照字典顺序,较短的字符串先于较长的字符串。在本例中,compareto返回字符串长度的差值,即值:
this.length()-anotherString.length()
第一个字符串的第一个字符等于整个第二个字符串( "0" ). 因此,他们是比较他们的长度。第一个字符串长度为4个字符,第二个字符串长度为1个字符。所以区别是 3
"0"
3
1条答案
按热度按时间ff29svar1#
请阅读文档
String.compareTo
:https://docs.oracle.com/javase/7/docs/api/java/lang/string.html#compareto(java.lang.string)
如果它们在一个或多个索引位置具有不同的字符,则k是此类索引的最小值;然后,其在位置k处的字符具有较小值的字符串(通过使用<运算符确定)按字典顺序排在另一个字符串之前。在本例中,compareto返回两个字符串中位置k处的两个字符值之差,即:
如果没有索引位置使它们不同,那么按照字典顺序,较短的字符串先于较长的字符串。在本例中,compareto返回字符串长度的差值,即值:
第一个字符串的第一个字符等于整个第二个字符串(
"0"
). 因此,他们是比较他们的长度。第一个字符串长度为4个字符,第二个字符串长度为1个字符。所以区别是3