簡體   English   中英

如何最好地將 byte[] 數組轉換為字符串緩沖區

[英]How best to convert a byte[] array to a string buffer

我有許多需要轉換為字符串緩沖區的 byte[] 數組變量。

有這種轉換的方法嗎?

謝謝

Thank you all for your responses..However I didn't make myself clear.... I'm using some byte[] arrays pre-defined as public static "under" the class declaration for my java program. 這些“字段”在流程的“生命周期”中被重用。 當程序發出狀態消息時,(寫入文件)我定義了一個字符串緩沖區(mesg_data),用於格式化狀態消息。 因此,當程序執行時,我嘗試了 msg2 = String(byte_array2) 我得到一個編譯器錯誤:找不到符號符號:方法 String(byte[]) 位置:class APPC_LU62.java.LU62XnsCvr convrs_ID = String(conversation);

例子:

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

所以我不能使用字符串變量的“動態”定義,因為同一個變量用於多次出現。

我希望我說清楚了 非常感謝

蓋伊

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

有一個字節數組和編碼的構造函數:

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

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

為了將字節轉換為字符,您需要指定編碼:0-255 值(即:字節序列)的序列(通常長度為 1,2 或 3)映射到字符的方案。 UTF-8 可能是默認的最佳選擇。

可以直接轉成String

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

然后轉換為StringBuffer

StringBuffer buffer = new StringBuffer(mystring)

您可以使用

str = new String(bytes)

上面的代碼所做的就是創建一個使用默認平台字符編碼的 java 字符串(即 UTF-16)。

如果字節數組是從以平台默認字符編碼編碼的字符串創建的,這將很好地工作。

如果不是,您需要指定正確的字符編碼(Charset)為

String str = new String (byte [] bytes, Charset charset)

它完全取決於字符編碼,但你想要:

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

這適用於 US-ASCII 值。

有關其他有效字符編碼(例如 UTF-8),請參閱Charset

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM