1 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
這里有一些東西可以讓你去 - 非常簡(jiǎn)單:
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);
}
}
}
如果我正確理解您的問(wèn)題,這是一個(gè)非??焖俚拇致越鉀Q方案 - 我想您需要擴(kuò)展它以滿足您的需求,但這個(gè)想法仍然存在。
如果版本仍不是,請(qǐng)將版本轉(zhuǎn)換為字符串。
按點(diǎn)拆分,您最終會(huì)得到兩個(gè)部分 - 例如第一部分(4)和第二部分(10)。
比較第一部分(因?yàn)樗亲址?,因此需要將其解析為整?shù))。如果第一部分相同,請(qǐng)比較第二部分(您還需要解析它)。
如果您使用的是 BigDecimal,并且想要轉(zhuǎn)換為 String 并保留尾隨零,請(qǐng)嘗試以下操作:
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
然后按照上面的字符串所述繼續(xù)操作。
添加回答
舉報(bào)