如何最好地将byte []数组转换为字符串缓冲区

Guy*_*ich 5 java

我有一些byte []数组变量,我需要转换为字符串缓冲区.

有这种转换的方法吗?

谢谢

谢谢大家的回复.但是我没有说清楚....我正在使用一些byte []数组预先定义为我的java程序的类声明下的公共静态".这些"领域"在过程的"生命"中被重用.当程序发出状态消息时,(写入文件)我已经定义了一个用于格式化状态消息的字符串缓冲区(mesg_data).所以当程序执行时我尝试了msg2 = String(byte_array2)我得到一个编译错误:找不到符号符号:方法String(byte [])location:class APPC_LU62.java.LU62XnsCvr convrsID = String(conversation_ID);

例:

public class LU62XnsCvr extends Object
           .
           .
static String convrsID ; 
static byte[] conversation_ID = new byte[8] ;
Run Code Online (Sandbox Code Playgroud)

所以我不能使用字符串变量的"动态"定义,因为在多次出现中使用相同的变量.

我希望自己明确表示非常感谢

家伙

hel*_*hod 6

String s = new String(myByteArray, "UTF-8");
StringBuilder sb = new StringBuilder(s);
Run Code Online (Sandbox Code Playgroud)

  • 是的,您应该指定字符编码.如果要将一个字节映射到一个字符,请使用"US-ASCII"编码.如果未指定编码,则可能会在不同的环境中获得不同的结果.在任何情况下,指定"US-ASCII"都会说清楚. (2认同)

Ita*_*man 5

有一个构造函数,一个字节数组和编码:

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

 String s = new String(bytes, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

为了将字节转换为字符,您需要指定编码:将0-255值(即:字节序列)的序列(通常长度为1,2或3)映射到字符的方案.UTF-8可能是默认的最佳选择.