String str="1234";
String str2="1234";
BigInteger bigInt=new BigInteger("1234");
Object v1=str;
Object v2=str2;
Object v3=bigInt;
System.out.println("Condition1==>>"+v1.equals(v2));
System.out.println("Condition2==>>"+v1.equals(v3));`
输出:
Condition1==>>true
Condition2==>>false
即使值相同,为什么第二个条件( v1.equals(v3) )结果为 false?两个条件之间有什么区别? 如何使第二个条件结果为true?
最佳答案
您可能对类型的工作原理感到困惑。有时,两种类型之间存在某些相似(同构)值。例如,字符串 "123"
和 int 123
。尽管它们看起来相同,并且可以在不丢失信息的情况下从一种类型转换为另一种类型,但它们实际上不是同一类型(并且它们在 Java 中没有预定义的自动转换),因此每种类型中的两个值不会平等。
您必须自己定义和执行这些转换。所以你需要写:
new BigInteger(v1).equals(v3)
关于java - 如何在java中比较字符串和BigInteger之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081969/