从java中的String中删除指定的数字

时间:2014-04-16 11:48:55

标签: java

我正在尝试从0006700guys之类的给定字符串中删除前1000位数字。

我想在任何十进制数字开始之前删除0'

假设我的String包含006700guys,那么我想删除前两个0,我需要像6700guys这样的O / P.

如果我的字符串包含000006700chi O / P,如6700chi

提前致谢。

5 个答案:

答案 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);
    }
}