我正在尝试从0006700guys
之类的给定字符串中删除前1000位数字。
我想在任何十进制数字开始之前删除0'
假设我的String包含006700guys
,那么我想删除前两个0,我需要像6700guys
这样的O / P.
如果我的字符串包含000006700chi
O / P,如6700chi
。
提前致谢。
答案 0 :(得分:1)
public static String removeZeros(String original) {
if (original == null) return null;
int index=0;
while (index<original.length() && original.charAt(index)=='0') index++;
if (index==0) return original;
return(original.substring(index));
}
答案 1 :(得分:0)
简单地:
while(s.startsWith("0")) {
s = s.substring(1);
}
答案 2 :(得分:0)
尝试正则表达式
s = s.replaceAll("^0+(.+)", "$1");
答案 3 :(得分:0)
如果s
是您的字符串,那么s.split("^0*")[1]
将为您提供所需的字符串。
在这里,我使用正则表达式字符串拆分器。 ^
表示字符串的开头,*
表示前面元素中的零个或多个。 [1]
获取返回的第一个(从零开始)元素(它将始终包含2个元素,我将留给OP的证明)。
答案 4 :(得分:0)
易于阅读的解决方案..无论如何正则表达式会比这快......
public static String removeLeadingZeros(String str)
{
for (int i = 0; i < str.length(); ++i)
{
char c = str.charAt(i);
if (c != '0' && !Character.isSpaceChar(c))
return str.substring(i);
}
}