1 回答

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