我看到过关于如何在SO中加上0前缀的问题。但不是相反!

你们能建议我如何去掉字母数字文本中的前导零吗?是否有任何内置api,或者我需要写一个方法来修剪前导零?

例子:

01234 converts to 1234
0001234a converts to 1234a
001234-a converts to 1234-a
101234 remains as 101234
2509398 remains as 2509398
123z remains as 123z
000002829839 converts to 2829839

当前回答

你可以像这样使用Apache Commons Lang中的StringUtils类:

StringUtils.stripStart(yourString,"0");

其他回答

使用kotlin很容易

value.trimStart('0')

使用Apache Commons StringUtils类:

StringUtils.strip(String str, String stripChars);

你可以像这样使用Apache Commons Lang中的StringUtils类:

StringUtils.stripStart(yourString,"0");

你可以这样做: String s = Integer.valueOf("0001007").toString();

如果只搜索第一个非零字符呢?

[1-9]\d+

这个正则表达式查找1到9之间的第一个数字,后面跟着任意数量的数字,因此对于“00012345”,它返回“12345”。 它可以很容易地适应字母数字字符串。