java - 从字符串中删除多余的零
问题描述
我想编写一个正则表达式来从字符串中删除多余的零。
REGEXP_REPLACE(REGEXP_REPLACE("Input_String","^0+", ''),'0+$','')
如果 input_string = 120
thenoutput_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();
推荐阅读
- javascript - 如何使用 JS 自动将沙盒属性添加到 iframe
- rxjs - 如果从 switchmap 返回一个仍然订阅的 observable,订阅可以保持订阅吗
- python - 如何用熊猫从 DataFrame 中的所有元素中减去一个数字?
- android - 如何第一步完成firestore的值,然后第二步让获取的值发送到第二个代码段?
- java - 如何根据同一数据库中的另一个值更改mysql中的值?
- php - Laravel 错误调试页面未正确加载
- python - 枕头调整图像大小 - 保持纵横比
- vue.js - 从 beforeEnter 重定向会导致无限循环并且不会重定向
- spring-batch - 如果文件输入资源不存在则跳过步骤
- python - python Spyder 交互式输出