gpt4 book ai didi

java - 在 Java 中有意义地比较两个字符串

转载 作者:搜寻专家 更新时间:2023-11-01 01:33:14 24 4
gpt4 key购买 nike

我有两个需要比较的字符串,但我想对它们进行有意义的比较,以便当它们是数字时,应该比较它们的实际值。到目前为止,我已经尝试了以下解决方案:

String str1 = "-0.6";
String str2 = "-.6";
if (NumberUtils.isNumber(str1) && NumberUtils.isNumber(str2)) {
Number num1 = NumberUtils.createNumber(str1);
Number num2 = NumberUtils.createNumber(str2);
System.out.println(num1.equals(num2));
} else {
System.out.println(str1.equals(str2));
}

这是有效的,因为两者都被转换为 double
但这在以下情况下不起作用:

String str1 = "6";
String str2 = "6.0";

有什么简单的方法可以做到这一点,还是我必须编写自己的比较器?

最佳答案

而不是使用通用的 createNumber(String) , 使用 createDouble(String) 强制它们加倍 :

String str1 = "-0.6";
String str2 = "-.6";
if (NumberUtils.isNumber(str1) && NumberUtils.isNumber(str2)) {
Double d1 = NumberUtils.createDouble(str1);
Double d2 = NumberUtils.createDouble(str2);
System.out.println(d1.equals(d2));
} else {
System.out.println(str1.equals(str2));
}

关于java - 在 Java 中有意义地比较两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31531837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com