bbits += (b.get(j) ? "1" : "0");

解决方案 »

  1.   

    一个个看(b.get(j) ? "1" : "0")三目运算符,b.get(j)为true时是1,false为0,然后bbits = bbits  + 这个结果。
      

  2.   

    这个是三元运算, bbits += (b.get(j) ? "1" : "0");b.get(j)返回的值为ture或者false,当返回的是ture则为bbits=bbits+1,false则为bbits=bbits+0。
      

  3.   

    import java.util.*;public class Bits {
      public static void main(String[] args) {
        Random rand = new Random();
        // Take the LSB of nextInt():
        byte bt = (byte)rand.nextInt();
        BitSet bb = new BitSet();
        for(int i = 7; i >=0; i--)
          if(((1 << i) &  bt) != 0)
            bb.set(i);
          else
            bb.clear(i);
        System.out.println("byte value: " + bt);
        printBitSet(bb);    short st = (short)rand.nextInt();
        BitSet bs = new BitSet();
        for(int i = 15; i >=0; i--)
          if(((1 << i) &  st) != 0)
            bs.set(i);
          else
            bs.clear(i);
        System.out.println("short value: " + st);
        printBitSet(bs);    int it = rand.nextInt();
        BitSet bi = new BitSet();
        for(int i = 31; i >=0; i--)
          if(((1 << i) &  it) != 0)
            bi.set(i);
          else
            bi.clear(i);
        System.out.println("int value: " + it);
        printBitSet(bi);    // Test bitsets >= 64 bits:
        BitSet b127 = new BitSet();
        b127.set(127);
        System.out.println("set bit 127: " + b127);
        BitSet b255 = new BitSet(65);
        b255.set(255);
        System.out.println("set bit 255: " + b255);
        BitSet b1023 = new BitSet(512);
    // Without the following, an exception is thrown
    // in the Java 1.0 implementation of BitSet:
    //    b1023.set(1023);
        b1023.set(1024);
        System.out.println("set bit 1023: " + b1023);
      }
      static void printBitSet(BitSet b) {
        System.out.println("bits: " + b);
        String bbits = new String();
        for(int j = 0; j < b.size() ; j++)
          bbits += (b.get(j) ? "1" : "0");
        System.out.println("bit pattern: " + bbits);
      }

      bbits += (b.get(j) ? "1" : "0");这句怎么理解
      

  4.   

    b.get(j) ? "1" : "0" 这是一个三目运算符 b.get(j)这个方法的返回值一定是一个布尔值即true or false,如果返回true则表达式 b.get(j) ? "1" : "0" 返回?号后面的 也就是字符串"1" 反之则返回字符串"0"。bbits 应该是个字符串类型的变量使用 += 运算符将返回的"1"或"0"合并到bbits 并重新赋值给bbits