gpt4 book ai didi

java - Java版本比较

转载 作者:行者123 更新时间:2023-12-02 10:07:32 28 4
gpt4 key购买 nike

我有一个比较 Eclipse 版本的函数。我们对当前 Eclipse IDE 进行子字符串化(例如,如果当前版本是 4.7.10,则该函数将返回 4.7)

我的问题是当前版本是 4.10。 Java 在比较 BigDecimal 时所做的就是删除尾随零。

如何得知 4.10 会大于 4.5?

谢谢!

最佳答案

这里有一些可以让您继续前进的东西 - 非常简单:

public class Main {
public static void main(String[] args)
{

String version1 = "4.10";
String version2 = "4.5";

compareVersions(version1, version2);
}

private static void compareVersions(String v1, String v2) {
String[] versionSplit1 = v1.split("\\.");
String[] versionSplit2 = v2.split("\\.");
if (versionSplit1[0].equals(versionSplit2[0])) {
if (Integer.parseInt(versionSplit1[1]) > (Integer.parseInt(versionSplit2[1]))) {
System.out.println(v1 + " is bigger than " + v2);
} else if (Integer.parseInt(versionSplit1[1]) == (Integer.parseInt(versionSplit2[1]))){
System.out.println(v1 + " is equal to " + v2);
} else {
System.out.println(v2 + " is bigger than " + v1);
}
} else if (Integer.parseInt(versionSplit1[0]) > Integer.parseInt(versionSplit2[0])) {
System.out.println(v1 + " is bigger than " + v2);
} else {
System.out.println(v2 + " is bigger than " + v1);
}
}
}

如果我正确理解您的问题,这是一个非常快速的粗略解决方案 - 我想您需要扩展它以满足您的需求,但这个想法仍然存在。

  1. 如果您的版本仍然不是字符串,请将其转换为字符串。
  2. 按点分割,最终会得到两部分 - 例如第一部分(4)和第二部分(10)。
  3. 比较第一部分(因为它是字符串,所以您需要将其解析为整数)。如果第一部分相同,请比较第二部分(您也需要解析它)。

如果您使用 BigDecimal 并且想要转换为 String 并保留尾随零,请尝试以下操作:

double value = 4.10;
//convert double to BigDecimal
BigDecimal bigDecimalValue = BigDecimal.valueOf(value);
BigDecimal tempValue = bigDecimalValue.setScale(2, RoundingMode.CEILING);
//convert to String
System.out.println(tempValue.toPlainString()); //5.40

然后按照上面的字符串所述进行操作。

关于java - Java版本比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55235045/

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