关于 new String(bytes) 的问题

highscore2 2009-12-16 05:45:24
我有一个字节数组 b1 , 想取前100个字节生成一个字符串请问怎么处理?

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

...全文
339 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
godismydaughter 2009-12-16
  • 打赏
  • 举报
回复
2L正确。
hugogoo 2009-12-16
  • 打赏
  • 举报
回复

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);

}
}


不知道是不是你需要的
crazylaa 2009-12-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qingzhe2008 的回复:]
String

public String(byte[] bytes,
              int offset,
              int length)

    构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。新的 String 的长度是一个字符集函数,因此不能等于该子数组的长度。

    当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

    参数:
        bytes - 要解码为字符的字节
        offset - 要解码的首字节的索引
        length - 要解码的字节数
    抛出:
        IndexOutOfBoundsException - 如果 offset 和 length 参数索引字符超出 bytes 数组的范围
    从以下版本开始:
        JDK1.1


[/Quote]

up
zfangla 2009-12-16
  • 打赏
  • 举报
回复
还是2楼正确, 膜拜一下
zfangla 2009-12-16
  • 打赏
  • 举报
回复
试了一下, 好象不行... 真丢脸...
qingzhe2008 2009-12-16
  • 打赏
  • 举报
回复
String

public String(byte[] bytes,
int offset,
int length)

构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。新的 String 的长度是一个字符集函数,因此不能等于该子数组的长度。

当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的字节
offset - 要解码的首字节的索引
length - 要解码的字节数
抛出:
IndexOutOfBoundsException - 如果 offset 和 length 参数索引字符超出 bytes 数组的范围
从以下版本开始:
JDK1.1

zfangla 2009-12-16
  • 打赏
  • 举报
回复
有个最简单的办法, 就是把b1的第101个字符设置成'\0'终结符,
然后new String(b1), 就在101这里终结了...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧