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开始截取,到最后一位结束
String str="00000999887";
str.replace("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)) 别的方法;