2012-04-16 35 views
-7

如果我比较字符串“1”和字符串“7”哪一个更大。另外,如果我比较字符串“1”和字符串“测试”哪一个会更大?比较字符串是“1”<“seven”

+9

你试过了吗? – geekosaur 2012-04-16 01:53:51

+1

你忘了有*咖啡*今天? – Lion 2012-04-16 01:57:11

+0

'<', '>','> ='和'<='仅适用于原始类型 – Jeffrey 2012-04-16 01:57:27

回答

2

Java中字符串的比较是逐个字符地完成的。根据每个字符在Unicode字符表中出现的位置,每个字符都有一个特定的排名(对于这种情况,我们可以使用ASCII,因为它是英语)。

“1”将被视为小于“7”以及“T”。

要调用(这个地方的main()内:

System.out.println("1".compareTo("7")); 
System.out.println("1".compareTo("Test")); 
System.out.println("1".compareToIgnoreCase("7")); 
System.out.println("1".compareToIgnoreCase("Test")); 

你会得到负的运算结果 - 这些都是从我们所比较的字符的ASCII点方面的距离compareToIgnoreCase()比较值小写ASCII范围内,所以这就是为什么最后compareToIgnoreCase()的价值是如此之低。

+0

谢谢,这是我很好奇的。 – Slowbro 2012-04-16 02:00:10