有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java比较两个数字字符串值

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

我有两条线:

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

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


共 (6) 个答案

  1. # 1 楼答案

    Integer.valueOf(string1).equals(Integer.valueOf(string2));
    
  2. # 2 楼答案

    不要忘记BigInteger表示很长的值

    return new BigInteger(s1).compareTo(new BigInteger(s2));
    
  3. # 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));
    
  4. # 4 楼答案

    这种比较是基于性格的。所以“2”>;'12'是正确的,因为比较将以'2'的形式进行按照字母顺序,“2”总是大于unicode中的“1”。所以它会成为现实

  5. # 6 楼答案

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

    就是这样。可以使用^{}方法将数字字符串转换为整数,该方法返回int类型。然后比较与4 == 4相同