我有一个字节数组 b1 , 想取前100个字节生成一个字符串请问怎么处理? 我现在的处理方法是 生成另一个b2 = new bype[100] 的数组然后复制b1数组的前100个字节,最后用new String(b2) 这样生成.
我想问是否可以直接操作b1数组,而不用生成 另一个b2数组。

解决方案 »

  1.   

    有个最简单的办法, 就是把b1的第101个字符设置成'\0'终结符,
    然后new String(b1), 就在101这里终结了...
      

  2.   

    Stringpublic String(byte[] bytes,
                  int offset,
                  int length)    构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。新的 String 的长度是一个字符集函数,因此不能等于该子数组的长度。    当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。    参数:
            bytes - 要解码为字符的字节
            offset - 要解码的首字节的索引
            length - 要解码的字节数 
        抛出:
            IndexOutOfBoundsException - 如果 offset 和 length 参数索引字符超出 bytes 数组的范围
        从以下版本开始:
            JDK1.1
      

  3.   


    package hugo;public class Test1 {
    public static void main(String [] args){
    byte[] b = new byte[200];
    for(int i=0;i<b.length;i++){
    b[i] = (byte)i;
    }
    String s ="";
    for(int i=0;i<100;i++){
    s +=""+b[i];
    }
    System.out.println(s);

    }
    }
    不知道是不是你需要的