我有一个简单的疑问。如果有人帮助我,会很棒。比较两个数字字符串值
我有两个字符串:
String string1 = "4"; // and
String string2 = "04";
两个值是相等的,但如何将其在Java中比较?我们有equals
和equalsIgnoreCase
用于比较字符串alpha值,同样如何比较数值。
我有一个简单的疑问。如果有人帮助我,会很棒。比较两个数字字符串值
我有两个字符串:
String string1 = "4"; // and
String string2 = "04";
两个值是相等的,但如何将其在Java中比较?我们有equals
和equalsIgnoreCase
用于比较字符串alpha值,同样如何比较数值。
Integer.parseInt("4") == Integer.parseInt("04")
这就是它。您可以使用Integer.parseInt(String)
方法将数字字符串转换为整数,该方法返回int
类型。然后比较结果与4 == 4
相同。
如果数字长于Int可容纳的长度,则不会溢出 –
Integer.valueOf(string1).equals(Integer.valueOf(string2));
'valueOf(String)'在内部调用'parseInt(String)'并包装它。使用'=='比较'parseInt(String)'的结果不需要装箱。 –
使用Integer类将字符串转换为整数。
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29
Integer.parseInt(string1) == Integer.parseInt(string2)
不要很长时间值忘了BigInteger
。
return new BigInteger(s1).compareTo(new BigInteger(s2));
跳过解析它为一个int来处理任意大的数字,只比较字符串。作为奖励,它也适用于十进制数字(除非有尾随零,你可能可以做类似的事情,而不是锚定字符串的结尾)。
如果你确定没有空格字符,你可以omitt微调
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));
新的整数(字符串1)==新的整数(字符串2) – madhairsilence
请... .equals() – msi
@madhairsilence。注意你的方法会失败,因为你用'=='来比较两个'Integer'对象,这可能被认为是犯罪。 –