我有 2 个数字串:
String a = "9.8.0.0.10"
String b = "10.0.0.0.11"
我只想比较字符串的初始部分(初始2部分),例如if(9.8 > 10.0)
这就是我正在做的事情:
String[] aPart = a.split("\\.",3)
String[] bPart = b.split("\\.",3)
String resultA = new StringBuilder(aPart[0]).append(".").append(aPart[1]).toString();
String resultB = new StringBuilder(bPart[0]).append(".").append(bPart[1]).toString()
然后
if(Double.parseDouble(resultA) > Double.parseDouble(resultB)
有没有更好的方法可以比较 9.8 和 10.0,而不是先进行分割,然后连接,然后解析,这是更糟糕的做法......
谢谢
最佳答案
如果第一个数字不能大于 20,您可以使用简单的正则表达式:
String a = "9.8.0.0.10";
String b = "10.0.0.0.11";
String convertRegexp = "(^[0-9]{1,2}\\.[0-9]+)\\..*";
double aAsDouble = Double.parseDouble(a.replaceAll(convertRegexp, "$1"));
double bAsDouble = Double.parseDouble(b.replaceAll(convertRegexp, "$1"));
if(aAsDouble > bAsDouble)
关于java - 仅比较 Java 中数字字符串的初始部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648100/