[英]compare two numeric String values
我有一個簡單的疑問。 如果有人幫助我,那就太好了。
我有兩個字符串:
String string1 = "4"; // and
String string2 = "04";
兩個值都相等但是如何在java中比較它們? 我們有equals
和equalsIgnoreCase
用於比較字符串 alpha 值,類似於如何比較數值。
Integer.parseInt("4") == Integer.parseInt("04")
這就對了。 您可以使用Integer.parseInt(String)
方法將數字字符串轉換為整數,該方法返回int
類型。 然后比較與4 == 4
相同。
不要忘記BigInteger
非常長的值。
return new BigInteger(s1).compareTo(new BigInteger(s2));
Integer.valueOf(string1).equals(Integer.valueOf(string2));
使用 Integer 類將字符串轉換為整數。
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29
Integer.parseInt(string1) == Integer.parseInt(string2)
完全跳過將其解析為 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));
比較是在字符的基礎上進行的。 所以 '2' > '12' 是真的,因為比較將發生為 '2' > '1' 並且按字母順序 '2' 總是大於 '1' 作為 unicode。 所以它會成真。
if(String.valueOf(S1).compareTo(String.valueOf(S2)) < 0)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.