字符串截取问题,请大神帮忙

String str="00000999887"; 字符串前面的0不固定有几个,想截取0后面的所有字符,请问用什么方法简单。

遍历字符串,把等于0的删掉

str.subSequence(str.lastIndexOf("0")+1, str.length())

p=str;while(*p=='0')p++;strcpy(str,p);

如果全部是数字的话,可以使用Integer.valueOf(str).toString();

如果不是全部为数字的话,就需要遍历处理

string(integer(str))

 alert("00000999887".replace(/^(0)\1+/ig, function () { return ''; }));

JS 代码

String str="00000999887";
System.out.println(str.substring(str.lastIndexOf("0")+1, str.length()));
注意:str.lastIndexOf("0")的意思是从0最后一次出现的时候的下标,又由于“从0最后一次出现的时候”包含最后一个“0”,所以要从从0最后一次出现的下一位开始截取,故+1,.substring是截取字符串的意思,从str.lastIndexOf("0")+1开始截取,到最后一位结束

  • 如果只有前面有0的话,用replace()方法,吧所有的0替换成为空字符就可以大概如下
  String str="00000999887"; 
  str.replace("0", "");
  • 如果0后面的数字也存在0的
第一种方案:
 先把字符串转化为字符串数组,然后循环,在碰到第一个非零的数字后,就结束,并且把剩余的拼接成新字符串
第二种方案:
  写一个牛X的正则

1.首先获取最后一个0的下标
int index=str.lastIndexOf("0")
2.然后通过0的下标截取后面所有数据
str.substring(index)

public static void main(String[] args) {
String str="00000999887";
int zeroSize =getSart0Number(str);
String strSub = str.substring(zeroSize,str.length());
System.out.println(strSub);
}
public static int getSart0Number(String num){
return num.length() - String.valueOf(Integer.parseInt(num)).length();
}

public static String splitStr(String s){
if (s == null || "".equals(s.trim())) {
return "";
}
String x = s.charAt(0) + "";
while ("0".equals(x)) {
s = s.substring(1, s.length());
if ("".equals(s.trim())) {
return "";
}
x = s.charAt(0) + "";
}
return s;
}

    获取第一个非零字符的位置,截取字符串
    String str = "00000909988a07";
    String result = str;
    String pattern = "[^0]{1}";

    Pattern r = Pattern.compile(pattern);
    Matcher m = r.matcher(str);
    if (m.find()) {
        result = str.substring(m.start());
    }
    System.out.println("result:" + result);

很简单:直接替换掉:System.out.println(str.replace("0", ""));

String str="00000999887";
int s = Integer.parseInt(str);
str = s.toString();

(String) str.subSequence(str.lastIndexOf("0")+1, str.length());

str.subString(str.lastIndexOf("0")+1, str.length()) 截取字符串,

string(integer(str))  别的方法;