您好,我正在比較手機設備的版本號。如果一個版本以4.3.2的形式出現,我的程序崩潰了,所以我實現了十進制格式,但現在它只是將我的數字從4.3.2加到4.3,但是程序將會完全正常,例如4.2的版本號。我怎樣才能修正我的比較器,以便能夠取得3位小數,並且在仍然工作2位小數的同時不會崩潰。版本比較器3位小數
@Override
public int compare(InventoryCardViewModel lhs, InventoryCardViewModel rhs) {
Phone lhp = phoneDataSource.getPhoneByDeviceID(lhs.getPhoneDeviceID.getValue());
Phone rhp = phoneDataSource.getPhoneByDeviceID(rhs.getPhoneDeviceID.getValue());
if(!lhp.versionNumber.equals(rhp.versionNumber)) {
DecimalFormat df = new DecimalFormat("#.#.#", new DecimalFormatSymbols(new Locale("en_US")));
try {
lhp.versionNumber = String.valueOf(df.parse(lhp.versionNumber).doubleValue());
rhp.versionNumber = String.valueOf(df.parse(lhp.versionNumber).doubleValue());
} catch (ParseException e) {
e.printStackTrace();
}
if (Double.valueOf(lhp.versionNumber) > Double.valueOf(rhp.versionNumber)) {
return -1;
} else {
return 1;
}
不要使用'DecimalFormat';我可能會拆分「\\。」,並比較結果標記。 –