402000
402010
402020
402070
402080
402090
  如何判断字符串末尾包含几个0

解决方案 »

  1.   

    String str = "402000";
    int n = str.length()-str.replaceAll("0","").length();
      

  2.   

    我 也 贴一个  。。呵呵  String str = String.valueOf(89050782);
            
            char[] ch = str.toCharArray();
            int count = 0;
            for(int i = 0 ; i < ch.length; i++)
            {
                if(ch[i] =='0')
                {
                    count++;
                }
            }        System.out.println(count);
            
      

  3.   


    str.length()-str.replaceAll 这个不是替换麽 这个什么意思
      

  4.   


     char[] ch = str.toCharArray();
     for(char c:ch){
       
    }
      

  5.   

        char[] ch = str.toCharArray();
            int count = 0;
            for(int i = 0 ; i < ch.length; i++)
            {
                if(ch[i] =='0')
                {
                    count++;
                }else{
                 break;                
    }
            }        System.out.println(count);
      

  6.   

    String s = "402000";
    System.out.println(s.replaceAll("^.*?(0*)$", "$1").length());hmmm,这样应该也可以吧
      

  7.   

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String a = "43000021300";
        int j = 0;
        for(int i=a.length()-1;i>=0;i--) {
          char c = a.charAt(i);
          if((int) c != 48) {
            System.out.println(j);
            break;
          }
          j++;
        }  }
      

  8.   

    String st = "23800000";
    int sum = 0;
    String[] c = st.split("");
    for (int i = c.length - 1; i > 0; i--) {
    if (!"0".equals(c[i])) {
    break;
    } else {
    sum++;
    }
    }
    System.out.println(sum);
    }
      

  9.   


    String str = "402000";
    int n = str.length()-str.replaceAll("0+$","").length();
    System.out.println(n);
      

  10.   


              String s = "402000";
              System.out.println(s.length()-s.replaceAll("0*$", "").length());
      

  11.   

    String str = "402000";
    int n = str.length()-str.replaceAll("0*$","").length();
    System.out.println(n)
      

  12.   

    我也来个,旁门左道:
    public static int howManyZeros(String s) {
    if (s == null || s.equals("")) {
    return 0;
    }
    String temp = new StringBuilder(s).reverse().toString();
    temp = temp.replaceFirst("[0]*", "");
    return s.length() - temp.length();
    }
      

  13.   

    string a="402000";
    char[] b=a.toCharArray();
    int sum=0;
    for(int i=a.length()-1,i>=0,i--)
    {
       if(b[i]=='0')
       {sum++;}
       else 
       break;
    }
    System.out.println(sum);
      

  14.   


    额,是说我吗?不好意思,前面网络断了……
    "^.*?0*$"
    上面这个正则很容易理解的对吧,任意起始,采用懒惰,然后结尾都是0
    然后括号么,怎么说,可以认为是分组或者怎么说来着就拿这个为例
    对于"402000"字符串,"^.*?(0*)$"中$1就是后面那个"000"
    如果是"^(.*?)(0*)$",那么$1就是"402",$2就是"000"
    上次那个去除前后逗号的例子
    字符串为",,,a,bc,,",正则是"^(,*)(.*?)(,*)$",那么$1就是",,,",$2是"a,bc",$3是",,"啊啊,表达能力好差,本来也是从别人的代码里看来的,凭自己理解的,是不是完全正确也不是很清楚哦……
      

  15.   

    int getTheNum(String str) {
    str = str.replaceAll("[1-9]", "1");
    return str.length()-str.lastIndexOf("1") - 1;
    }