比较两个数字字符串值

时间:2013-04-02 12:33:37

标签: java

我有一个简单的怀疑。如果有人帮助我会很棒。

我有两个字符串:

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

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

6 个答案:

答案 0 :(得分:18)

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

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

答案 1 :(得分:10)

不要忘记BigInteger很长的值。

return new BigInteger(s1).compareTo(new BigInteger(s2));

答案 2 :(得分:9)

Integer.valueOf(string1).equals(Integer.valueOf(string2));

答案 3 :(得分:2)

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

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

Integer.parseInt(string1) == Integer.parseInt(string2)

答案 4 :(得分:2)

将它解析为一个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));

答案 5 :(得分:0)

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