java new String中有一个错误

时间:2016-01-27 09:48:31

标签: java concat

我试试这段代码:

byte[] data = new byte[66000];
int count = is.read(data);
String sRequest = new String(data);  //will received byte array hello
String all = sRequest;        
all = all.concat("world");
System.out.println(all);

它只能打印到我的控制台:你好

concat java的功能有bug吗?我也用+运算符代替concat函数但结果相同:( 如何从字节数组中使用新String连接String?

1 个答案:

答案 0 :(得分:4)

而不是

    String sRequest = new String(data);  //will received byte array hello

使用

    String sRequest = new String(data, 0, count);  //will received byte array hello

当您另外打印结果字符串的长度时,您会注意到区别:

    System.err.println(all + "/" + all.length());

在第一种情况下给出helloworld/66005,在第二种情况下给出helloworld/10。您只看到“hello”的原因可能是您的控制台的一个问题 - 在Eclipse中,我确实看到了“helloworld”,但是当我将其复制并粘贴到另一个编辑器中时,只会采用其中一个单词。初始数组中的0值是结果的一部分(因为它们已经添加到第一个字符串中),但它们不会打印出来(因为它们不是可打印的字符)。