您好,我正在比较手机设备的版本号。如果一个版本以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';我可能会拆分“\\。”,并比较结果标记。 –