2011-04-28 174 views
5

我有一些byte []数组变量需要转换为字符串缓冲区。如何将字节[]数组转换为字符串缓冲区

是否有这种类型的转换方法?

感谢

谢谢大家的responses..However我没有让自己清楚.... 我使用一些字节[]数组预先定义为公共静态“下”之类的声明 为我的java程序。这些“领域”在过程的“生命”期间被重复使用。 当程序发布状态消息(写入文件)时,我定义了一个用于格式化状态消息的字符串缓冲区 (mesg_data)。 所以随着程序的执行 我试图MSG2 =字符串(byte_array2) 我得到一个编译错误: 找不到符号 符号:方法字符串(字节[]) 位置:类APPC_LU62.java.LU62XnsCvr convrsID =字符串( conversation_ID);

例如:

public class LU62XnsCvr extends Object 
      . 
      . 
static String convrsID ; 
static byte[] conversation_ID = new byte[8] ; 

因此,我不能使用“动态”,因为相同的变量在多个occurances使用 字符串变量的定义。

我希望我自己清楚 万分感谢

盖伊

+0

指定正确的字符编码(字符集),你需要的字节字符串表示?或每个字节代表一个字符? – Dave 2011-04-28 18:33:56

+0

这么多重复的答案... – 2011-04-28 19:06:26

回答

6
String s = new String(myByteArray, "UTF-8"); 
StringBuilder sb = new StringBuilder(s); 
+1

这是为什么downvoted?由于缺少字符编码? – helpermethod 2011-04-29 16:08:19

+2

是的,你应该指定字符编码。如果你想要一个字节映射到一个字符,那么使用“US-ASCII”编码。如果您不指定编码,则可能会在不同的环境中获得不同的结果。在任何情况下,指定“US-ASCII”说明清楚。 – AgilePro 2013-02-15 00:59:12

3

你可以把它转化为一个String直接

byte[] bytearray 
.... 
String mystring = new String(bytearray) 

,然后转换为StringBuffer

StringBuffer buffer = new StringBuffer(mystring) 
5

有一construc TOR的是一个字节数组和编码:

byte[] bytes = new byte[200]; 
//... 

String s = new String(bytes, "UTF-8"); 

为了翻译字节需要指定编码性状:方案,通过该值0-255(通常为3的长度1,2或)序列(即是:字节序列)映射到字符。 UTF-8可能是默认情况下最好的选择。

0

这完全取决于字符编码,但你想:

String value = new String(bytes, "US-ASCII"); 

这将为US-ASCII值工作。

用于其他有效字符编码(例如,UTF-8)

1

你可以使用

str = new String(bytes) 

通过thewhat上面的代码不会是创建一个Java字符串参见Charset(即UTF-16)使用默认的平台字符编码。

如果字节数组是从在平台默认字符编码中编码的字符串创建的,则这将工作良好。

如果没有你需要的

String str = new String (byte [] bytes, Charset charset) 
相关问题