我想从十进制字符串中删除前导0。
我现在在代码段下面使用
。inp.replaceAll("^0*","")
它工作正常,直到获得0.00
。因为如果0.00
,它给我.00
作为输出,这是不正确的..!
任何人都可以分享使用正则表达式可以实现的方式吗?
答案 0 :(得分:1)
您可以使用
s = s.replaceAll("^0+(?!\\.0+$)", "");
详细信息
^
-字符串的开头0+
-一个或多个0
数字(?!\\.0+$)
-不立即跟在.
和1+零之后,直到字符串结尾。答案 1 :(得分:0)
@Test
public void testStripLeadingZero() {
List<String> tests = new ArrayList<>(Arrays.asList(
"0.05",
"-0.03",
"100.03",
"-100.03",
"000010",
"-00020",
"0077.778",
"-0088.888"
));
for (String s : tests) {
String result = s.replaceFirst("^0+", "").replaceFirst("^-0+", "-");
System.err.println("result: " + result);
}
}
输出:
result: .05
result: -.03
result: 100.03
result: -100.03
result: 10
result: -20
result: 77.778
result: -88.888