Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从十进制字符串中删除前导零_Java_Regex - Fatal编程技术网

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

Java 从十进制字符串中删除前导零,java,regex,Java,Regex,我想从十进制字符串中删除前导0 我现在正在使用下面的代码片段 inp.replaceAll("^0*","") 工作正常,直到我得到0.00。因为如果0.00,它会将.00作为输出,这是不正确的 任何人都可以分享如何使用regex实现它吗?您可以使用 s = s.replaceAll("^0+(?!\\.0+$)", ""); 请参阅和: 详细信息 ^-字符串的开头 0+-一个或多个0数字 (?!\\.0+$)-不紧跟和1+零直到字符串末尾 您可以使用 s = s.replaceAll(

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

我现在正在使用下面的代码片段

inp.replaceAll("^0*","")
工作正常,直到我得到
0.00
。因为如果
0.00
,它会将
.00
作为输出,这是不正确的

任何人都可以分享如何使用regex实现它吗?

您可以使用

s = s.replaceAll("^0+(?!\\.0+$)", "");
请参阅和:

详细信息

  • ^
    -字符串的开头
  • 0+
    -一个或多个
    0
    数字
  • (?!\\.0+$)
    -不紧跟
    和1+零直到字符串末尾
您可以使用

s = s.replaceAll("^0+(?!\\.0+$)", "");
请参阅和:

详细信息

  • ^
    -字符串的开头
  • 0+
    -一个或多个
    0
    数字
  • (?!\\.0+$)
    -不紧跟
    和1+零直到字符串末尾

0.00开头的
0.
^0+(?!\.0+$)
不匹配,因为
(?!\.0+$)
不允许匹配后跟
和一个或多个零的
0
。看见我解释了正则表达式的每一部分。如果你在理解负前瞻如何工作方面有困难,请参阅我以前的答案,我在那里详细解释了它们的工作原理。那么,它最终对你有用吗?如果是,请考虑通过点击接受答案。✓ 左侧。位于
0.00
开头的
0.
^0+(?!\.0+$)
不匹配,因为
(?!\.0+$)
不允许匹配后跟
和一个或多个零的
0
。看见我解释了正则表达式的每一部分。如果你在理解负前瞻如何工作方面有困难,请参阅我以前的答案,我在那里详细解释了它们的工作原理。那么,它最终对你有用吗?如果是,请考虑通过点击接受答案。✓ 在左边。它不工作…如果我使用00.7700,它会显示。7700…不正确@然后使用
“^0+(?!\)”
“^0+(?=[^.])”
。你能收集你的测试用例并将它们添加到问题中吗?这将更容易给你一个明确的答案。它不起作用…如果我使用00.7700,它会显示。7700…不正确@然后使用
“^0+(?!\)”
“^0+(?=[^.])”
。你能收集你的测试用例并将它们添加到问题中吗?给你一个明确的答案会更容易。
result: .05
result: -.03
result: 100.03
result: -100.03
result: 10
result: -20
result: 77.778
result: -88.888