我需要将一些byte []数组变量转换为字符串缓冲区。
有这种转换的方法吗?
谢谢
谢谢大家的回复......但是我没有说清楚...... 我正在使用一些byte []数组预定义为类声明下的公共静态“ 对于我的java程序。这些“领域”在过程的“生命”中被重用。 当程序发出状态消息时,(写入文件)我已经定义了一个字符串缓冲区 (mesg_data)用于格式化状态消息。 所以当程序执行时 我试过msg2 = String(byte_array2) 我收到编译器错误: 找不到标志 symbol:方法String(byte []) 位置:类APPC_LU62.java.LU62XnsCvr convrsID = String(conversation_ID);
示例:
public class LU62XnsCvr extends Object
.
.
static String convrsID ;
static byte[] conversation_ID = new byte[8] ;
所以我不能使用字符串变量的“动态”定义,因为使用了相同的变量 在多次出现。
我希望自己清楚明白 非常感谢
盖伊
答案 0 :(得分:6)
String s = new String(myByteArray, "UTF-8");
StringBuilder sb = new StringBuilder(s);
答案 1 :(得分:5)
有一个构造函数,一个字节数组和编码:
byte[] bytes = new byte[200];
//...
String s = new String(bytes, "UTF-8");
为了将字节转换为字符,您需要指定编码:将0-255值(即:字节序列)的序列(通常长度为1,2或3)映射到字符的方案。 UTF-8可能是默认的最佳选择。
答案 2 :(得分:3)
您可以直接将其转为String
byte[] bytearray
....
String mystring = new String(bytearray)
然后转换为StringBuffer
StringBuffer buffer = new StringBuffer(mystring)
答案 3 :(得分:1)
您可以使用
str = new String(bytes)
通过以上代码执行的操作是使用默认平台字符编码创建java String(即UTF-16)。
如果字节数组是从以平台默认字符编码编码的字符串创建的,那么这将很有效。
如果不是,则需要将正确的字符编码(Charset)指定为
String str = new String (byte [] bytes, Charset charset)
答案 4 :(得分:0)
完全取决于字符编码,但你想要:
String value = new String(bytes, "US-ASCII");
这适用于US-ASCII值。
有关其他有效的字符编码(例如,UTF-8),请参阅Charset