我有一個簡單的疑問。如果有人幫助我,會很棒。比較兩個數字字符串值
我有兩個字符串:
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'對象,這可能被認爲是犯罪。 –