【问题标题】:Comparing strings is "1"<"seven" [closed]比较字符串是“1”<“seven”[关闭]
【发布时间】:2012-04-16 01:53:18
【问题描述】:

如果我将字符串“1”与字符串“7”进行比较,哪个更大。另外,如果我将字符串“1”与字符串“Test”进行比较,哪个会更大?

【问题讨论】:

  • 你试过了吗?
  • 你今天忘记喝咖啡了吗?
  • &lt;&gt;&gt;=&lt;= 仅适用于原始类型。
  • @Jeffrey: String.compareTo()String.compareToIgnoreCase() 返回一个 int (这是原始的)。所以从技术上讲你是对的......
  • 哈哈!有趣的问题。 Strings 重载,所以这在 Java 中根本不起作用。

标签: java compare


【解决方案1】:

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() 的值如此之低的原因。

【讨论】:

  • 谢谢,这是我很好奇的。
猜你喜欢
  • 2013-01-06
  • 2016-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多