Java 从十进制字符串中删除前导零
我想从十进制字符串中删除前导0 我现在正在使用下面的代码片段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(
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.
与^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