11

我有一个简单的疑问。如果有人帮助我,那就太好了。

我有两个字符串:

String string1 = "4"; // and 
String string2 = "04";

两个值都相等但是如何在java中比较它们?我们有equalsequalsIgnoreCase用于比较字符串的 alpha 值,类似地如何比较数值。

4

6 回答 6

21
Integer.parseInt("4") == Integer.parseInt("04")

这就对了。Integer.parseInt(String)您可以使用返回int类型的方法将数字字符串转换为整数。然后比较是一样的4 == 4

于 2013-04-02T12:36:08.900 回答
12

不要忘记BigIntegerfor 很长的值。

return new BigInteger(s1).compareTo(new BigInteger(s2));
于 2015-12-12T10:55:47.023 回答
9
Integer.valueOf(string1).equals(Integer.valueOf(string2));
于 2013-04-02T12:35:20.197 回答
3

使用 Integer 类将字符串转换为整数。

http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29

Integer.parseInt(string1) == Integer.parseInt(string2)
于 2013-04-02T12:36:31.097 回答
3

完全跳过将其解析为 int 以处理任意大的数字,仅比较字符串。作为奖励,它也适用于十进制数(除非有尾随零,你可能可以用锚定字符串结尾来做类似的事情)。

如果您确定没有空格字符,则可以省略修剪

    String string1 = "4"; // and
    String string2 = "04";

    String noLeadingZeroes1 = string1.trim().replaceFirst("^0+(?!$)", "");
    String noLeadingZeroes2 = string2.trim().replaceFirst("^0+(?!$)", "");

    System.out.println(noLeadingZeroes1.equals(noLeadingZeroes2));
于 2017-06-28T12:06:53.990 回答
0

比较是在字符的基础上进行的。所以 '2' > '12' 是真的,因为比较将发生为 '2' > '1' 并且按字母顺序 '2' 总是大于 '1' 作为 unicode。所以它会成真。

于 2021-06-04T15:31:59.383 回答