我有这样的数字需要删除前导零.
这就是我需要的:
00000004334300343
- > 4334300343
0003030435243
- > 3030435243
由于我不熟悉正则表达式,所以我无法理解这一点.这不起作用:
(^0)
Run Code Online (Sandbox Code Playgroud)
Roh*_*ain 18
你快到了.你只需要量词:
str = str.replaceAll("^0+", "");
Run Code Online (Sandbox Code Playgroud)
它替换了1个或多个0的出现(也就是+
量词所用的.同样,我们有*
量词,这意味着0或更多),在字符串的开头(由插入符号给出^
),带有空字符串.
Art*_*hev 10
如果您需要从“00”获取“0”,则已接受的解决方案将失败。这是正确的:
str = str.replaceAll("^0+(?!$)", "");
Run Code Online (Sandbox Code Playgroud)
^0+(?!$)
如果后面不是字符串结尾,则表示匹配一个或多个零。
感谢评论者 - 我已经更新了公式以匹配作者的描述。
如果您知道输入字符串都包含数字,那么您可以执行以下操作:
String s = "00000004334300343";
System.out.println(Long.valueOf(s));
// 4334300343
Run Code Online (Sandbox Code Playgroud)
通过转换Long
它会自动去除所有前导零。
归档时间: |
|
查看次数: |
17022 次 |
最近记录: |