java - 如何在java中比较字符串和BigInteger之间的值

标签 java

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/

相关文章:

java - 使用 JUnit 测试 SQLiteOpenHelper 子类

java - 某些 Android 设备上应用程序崩溃的原因是什么

java - WSContext.getUserPrincipal() 为密码摘要认证返回 null

java - Log4j2 获取日志记录事件

java - 中间表和非主键的一对一映射

Java-WebKit : EventSource object can not be created?

java - BlockingQueue 中的 take() 和 put() 实现

java - Android 私钥到 BouncyCaSTLe PrivateKeyInfo?

java - 如何在JSF应用程序中检测客户端语言环境?

java - 连接表上的 jooq 别名