簡體   English   中英

java字節數組到字符串

[英]java byte array to String

我正在嘗試制作Java二進制轉換器 ,並且我已經開始將二進制轉換回String 我已經做到了一個byte數組。 我想將其轉換為字符串。

例如,我想要一個{01000001, 01100001, 01000010, 01100010}的新byte數組返回"AaBb"

我怎樣才能做到這一點?

我認為您真正想要做的是將二進制(十進制)數字轉換為其ASCII表示形式。 如果是這樣,請嘗試以下操作:

public class ByteArrayToAsciiChar {

  public String byteToCharacter(byte b) {
    return Character.valueOf((char)b).toString();
  }

  public static void main(String[] args) {
    byte[] byteArray = {
        0b00100101,
        0b01000001,
        0b01100001,
        0b01000010,
        0b01100010,
        0b01010101
    };

    ByteArrayToAsciiChar testClass = new ByteArrayToAsciiChar();

    for (byte b : byteArray) {
      System.out.println("Byte: " + b + " ==> " + testClass.byteToCharacter(b));
    }

  }

}

給出以下輸出:

Byte: 37 ==> %
Byte: 65 ==> A
Byte: 97 ==> a
Byte: 66 ==> B
Byte: 98 ==> b
Byte: 85 ==> U

HTH

嗯...就這么簡單:

    byte[] bytes = {0b01000001, 0b01100001, 0b01000010, 0b01100010};
    String str = new String(bytes, "ASCII");

當然,這假定字節代表ASCII編碼的字符。 如果不是,則使用實際字符編碼的名稱。

如果您打算做很多事情,那么值得為字符集查找Charset對象並使用String(byte[], Charset)重載。

如果您已經有一個字節數組(以下示例性構造),則可以輕松地將字節數組傳遞給新的String(如Ingo所建議)和中提琴-完成。

byte b[] = new byte[4];
b[0] = Byte.parseByte("01000001", 2);
b[1] = Byte.parseByte("01100001", 2);
b[2] = Byte.parseByte("01000010", 2);
b[3] = Byte.parseByte("01100010", 2);

String output = new String(b);

如果只有字符串形式的二進制數組,則可以使用以下命令:

public String convertBinaryArrayToString(String binary[]) {
    String ret = null;
    for (String i : binary) {
        ret += (char) Byte.parseByte(i, 2);
    }
    return ret;
}

希望這可以幫助。

暫無
暫無

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

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