删除String数据类型的一个尾随零



如何在java中删除字符串数据类型的唯一尾随零。例如:

如果输入值是29.360,那么预期输出应该是29.36

如果输入值是29.00,那么预期输出应该是29.0

如果输入值是29.50,那么预期输出应该是29.5

试试这个。

  • "0$"与字符串末尾的0匹配
  • 如果找到,则用空字符串替换除此之外的所有字符串
  • (?<!\.)说不要删除小数点后的一个单独的0
String[] data = {"29.360", "100", "1000","29.00", "33.47", "29.50", "29.0"}; 
for (String val : data) {
String result = val.replaceAll("(\d*\.\d*)(?<!\.)0$","$1");
System.out.println(val + " --> " + result);
}

打印

29.360 --> 29.36
100 --> 100
1000 --> 1000
29.00 --> 29.0
33.47 --> 33.47
29.50 --> 29.5
29.0 --> 29.0

您可以使用BigDecimal来实现同样的目的。示例如下:

System.out.println(new BigDecimal("29.360").stripTrailingZeros());
System.out.println(new BigDecimal("29.00").stripTrailingZeros());
System.out.println(new BigDecimal("29.50").stripTrailingZeros());

最新更新