从十进制字符串中删除前导零

时间:2019-06-05 09:14:07

标签: java regex

我想从十进制字符串中删除前导0。

我现在在代码段下面使用

inp.replaceAll("^0*","")

它工作正常,直到获得0.00。因为如果0.00,它给我.00作为输出,这是不正确的..!

任何人都可以分享使用正则表达式可以实现的方式吗?

2 个答案:

答案 0 :(得分:1)

您可以使用

s = s.replaceAll("^0+(?!\\.0+$)", "");

请参见regex demoregex graph

enter image description here

详细信息

  • ^-字符串的开头
  • 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