Java 从二进制字符串中获取n位

Java 从二进制字符串中获取n位,java,binary,bit-shift,bits,Java,Binary,Bit Shift,Bits,是否有更好的方法从二进制字符串获取位[] e、 g. 假设我需要从索引=3到长度(len=5)的位 BinaryString=100110000000000 100001111000001 预期结果=11000 这就是我目前所拥有的 方法1 public void getBits1(){ int idx = 3; int len = 5; String binary = new BigInteger("98010F81", 16).toString(2);

是否有更好的方法从二进制字符串获取位[]
e、 g.
假设我需要从索引=3到长度(len=5)的位
BinaryString=100110000000000 100001111000001
预期结果=11000

这就是我目前所拥有的

方法1

    public void getBits1(){
    int idx = 3;
    int len = 5;
    String binary = new BigInteger("98010F81", 16).toString(2);
    char[] bits = binary.toCharArray();
    String result = "";

    //check here: to make sure len is not out of bounds
    if(len + idx > binary.length())
        return; //error

    for(int i=0; i<len; i++){
        result = result + bits[idx];
        idx++;
    }

    //original
    System.out.println(binary);
    //result
    System.out.println(result);
}

我认为value.substring(int,int)做得很好。

我认为value.substring(int,int)做得很好。

方法2对mem来说很好方法2对我来说很好
    public void getBits2(){
    int idx = 3;
    int len = 5;
    String binary = new BigInteger("98010F81", 16).toString(2);
    String result = binary.substring(idx, len+idx);

    //original
    System.out.println(binary);
    //result
    System.out.println(result);
}