我想编写一个正则表达式来从字符串中删除多余的零。
REGEXP_REPLACE(REGEXP_REPLACE("Input_String","^0+", ''),'0+$','')
失败,如果 input_string = 120
然后 output_string = 12
而不是 120
。
以下是预期的输入与输出:
120--> 120
12--> 12
120.00--> 120
000329.0--> 329
14.4200--> 14.42
000430--> 430
0.24000--> 0.24
0.100--> 0.1
1.0--> 1
最佳答案
最简单的方法是使用BigDecimal
:
String stripped = new BigDecimal(input).stripTrailingZeros().toString();
编辑:这实际上不适用于 000430
:其字符串表示形式为 4.3E+2
。
您可以通过确保scale
至少为零来解决此问题:
BigDecimal b = new BigDecimal(input).stripTrailingZeros();
if (b.scale() < 0) {
b = b.setScale(0, RoundingMode.UNNECESSARY);
}
String stripped = b.toString();
关于java - 从字符串中删除多余的零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56181925/