一个字段的初始数值是由几个0组成的(长度不定)比如 00000,经过一些业务操作后最后都置为1,比如11111,在过程中可能是11100,现在就是想判断是不是都是所有都是1(返回true),和计算出里面有几个1,几个0。如何写这个函数呢?多谢各位了:)

解决方案 »

  1.   

    int m=1;
    int n=0;
    for(int i=0;i<str.length();i++){
      m *= Integer.parseInt(str.substring(i,i+1));
      n += Integer.parseInt(str.substring(i,i+1));
    }
    println(m);
    println(n);
      

  2.   

    字符串形式吗?你可以把他转成字符数组,然后来个f循环 一个个判断是不是1,是的话就记录下,、。
    不是字符的话就 String str=youNumber+"";
      

  3.   

    public check(String s){
    int number0=0,number1=0;for(int i=0;i<s.length();i++)
    {
      if(s.charAt(i).equals("0"))number0++;
      if(s.charAt(i).equals("1"))number1++;
    }
    if(number1==s.length())return ture;
    }
      

  4.   

    //上面得写错了
    class StringDemo{
    public static int[] check(String s){
    int [] number={0,0}; for(int i=0;i<s.length();i++)
    {
      if(s.charAt(i)=='0')number[0]++;
      if(s.charAt(i)=='1')number[1]++;
    }
    return number;
    } public static void main(String[] args){
    String s="11110001001";
    int [] number; number=check(s);
    System.out.println("0得个数:"+number[0]);
    System.out.println("1得个数:"+number[1]);
    }
    }
      

  5.   

    用charAt来比较没有必要把String通过subString切分,这个效率太低了。charAt无论从遍历速度还是比较速度上都要优越
      

  6.   

    //用一个数就可以了吧
    byte b1=0; //5个都是0
    byte b2=31;//5个都是1
    判断是直接==就可以了
    中间需要改变的话可以赋值,也可以加/减上一个数使之某一位变化(改0需要保证原来是1才能加,反之亦然),或者用&、|运算。
      

  7.   

    toString().toByte
    慢慢遍历试试看
      

  8.   

    class classprint{
        public static void checkString(String s){
            int n = s.indexOf("1",0);
            int w = 0;
            while (n >= 0){
                n = s.indexOf("1",n + 1);
                w ++;
            }
            System.out.println("1的个数为:" + w);
            System.out.println("0的个数为:" + s.length() - w);
        }    
        
        public static void main(String mrg[]){
            checkString("10011001001");
        }
    }