删除 Java 中的尾随零
我有字符串(来自DB),它可能包含数值。如果它包含数值,我想删除尾随零,例如:
10.0000
-
10.234000
str.replaceAll("\\.0*$", "")
,适用于第一个,但不适用于第二个。
很多答案都指向使用,但我得到的可能不是数字。所以我认为更好的解决方案可能是通过正则表达式。BigDecimal
String
我有字符串(来自DB),它可能包含数值。如果它包含数值,我想删除尾随零,例如:
10.0000
10.234000
str.replaceAll("\\.0*$", "")
,适用于第一个,但不适用于第二个。
很多答案都指向使用,但我得到的可能不是数字。所以我认为更好的解决方案可能是通过正则表达式。BigDecimal
String
有以下可能性:
1000 -> 1000
10.000 -> 10 (without point in result)
10.0100 -> 10.01
10.1234 -> 10.1234
我懒惰和愚蠢,只是
s = s.indexOf(".") < 0 ? s : s.replaceAll("0*$", "").replaceAll("\\.$", "");
使用相同的解决方案,而不是某些注释中提到的解决方案,以便于理解contains
indexOf
s = s.contains(".") ? s.replaceAll("0*$","").replaceAll("\\.$","") : s
使用十进制格式,这是最干净的方式
String s = "10.1200";
DecimalFormat decimalFormat = new DecimalFormat("0.#####");
String result = decimalFormat.format(Double.valueOf(s));
System.out.println(result);