java - 仅比较 Java 中数字字符串的初始部分

标签 java string split

我有 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/

相关文章:

java - 列出每次占用 9 个单元格的 9x9 框的所有可能组合

javascript - 我需要获取一个输入的字符串,取出非数字字符,然后如果该字符串以1开头,则删除1

javascript - "string"=== "string"与 typeof 的优点

python - Pandas:更快地将字符串元组列表转换为数据帧?

java - 如何拆分下一个条目集迭代器?

Java 从命令中分割参数

java - 为什么自动装箱不适用于 Short(5)?

java - 将概率分配给随机枚举对象

Java 抛出 InputMismatchException

r - 在 R 中按多个条件拆分字符