今天我們將學習如何在Java中將字串轉換為位元組陣列。同時,我們還將學習如何在Java中將位元組陣列轉換為字串。
字串轉換為位元組陣列
我們可以使用String類別的getBytes()
方法,將字串編碼為一系列位元,使用平台的預設字元集。此方法有多載,我們還可以傳遞Charset
作為參數。以下是一個簡單的程式,演示如何在Java中將字串轉換為位元組陣列。
package com.journaldev.util;
import java.util.Arrays;
public class StringToByteArray {
public static void main(String[] args) {
String str = "PANKAJ";
byte[] byteArr = str.getBytes();
// 印出位元組陣列元素
System.out.println("String to byte array: " + Arrays.toString(byteArr));
}
}
下面的圖像顯示了執行上述程式時的輸出。我們還可以使用以下代碼獲取位元組陣列。
byte[] byteArr = str.getBytes("UTF-8");
但是,如果我們提供Charset名稱,那麼我們將不得不捕捉UnsupportedEncodingException
例外或將其拋出。更好的方法是使用Java 1.7中引入的StandardCharsets
類別,如下所示。
byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);
這就是在Java中將字串轉換為位元組陣列的所有不同方式。
Java byte array to String
讓我們看一個簡單的程式,展示如何在Java中將byte陣列轉換為String。
package com.journaldev.util;
public class ByteArrayToString {
public static void main(String[] args) {
byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray);
String str1 = new String(byteArray1);
System.out.println(str);
System.out.println(str1);
}
}
下面的圖像顯示了上述程式產生的輸出。你有注意到我在創建byte陣列時提供了char嗎?這是因為自動裝箱,char ‘P’被轉換為byte陣列中的80。這就是為什麼對於byte陣列轉換為字符串,輸出是相同的原因。String也有一個構造函數,我們可以提供byte陣列和Charset作為參數。因此,下面的代碼也可以用於在Java中將byte陣列轉換為String。
String str = new String(byteArray, StandardCharsets.UTF_8);
String類還有一個方法,可以將byte陣列的子集轉換為String。
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
上面的代碼是完全正確的,’str’值將是’PAN’。這就是關於在Java中將byte陣列轉換為String的全部內容。
你可以從我們的GitHub存儲庫中查看更多陣列範例。
Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java