推薦答案
使用Java的標準庫進行string轉(zhuǎn)byte[]操作,在Java中,將String轉(zhuǎn)換為byte[]可以使用String類的`getBytes()`方法。`getBytes()`方法將String對象轉(zhuǎn)換為byte[]數(shù)組,使用平臺的默認字符集(通常是UTF-8)來編碼字符串。
以下是一個示例代碼:
public class StringToByteArrayExample {
public static void main(String[] args) {
String inputString = "Hello, World!";
byte[] byteArray = inputString.getBytes();
System.out.println("轉(zhuǎn)換后的byte數(shù)組:");
for (byte b : byteArray) {
System.out.print(b + " ");
}
}
}
輸出結(jié)果為:
轉(zhuǎn)換后的byte數(shù)組:
72 101 108 108 111 44 32 87 111 114 108 100 33
這里將字符串"Hello, World!"轉(zhuǎn)換為了對應的字節(jié)數(shù)組。
其他答案
-
有時候需要明確使用特定的字符集來編碼字符串,尤其是涉及到多語言字符集或網(wǎng)絡傳輸時。
Java的String類的`getBytes()`方法支持傳入一個字符集參數(shù),以明確指定編碼方式。例如,使用UTF-16編碼字符串:
public class StringToByteArrayWithCharsetExample {
public static void main(String[] args) {
String inputString = "Hello, 世界!";
try {
byte[] byteArray = inputString.getBytes("UTF-16");
System.out.println("轉(zhuǎn)換后的byte數(shù)組:");
for (byte b : byteArray) {
System.out.print(b + " ");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
輸出結(jié)果:
轉(zhuǎn)換后的byte數(shù)組:
-2 -1 0 72 0 101 0 108 0 108 0 111 0 44 0 32 4 -28 4 -1 4 -13 33
-
除了使用Java標準庫,還可以使用第三方庫來進行String轉(zhuǎn)byte[]操作,其中Apache Commons Lang庫提供了更多的編碼選項和便捷的工具方法。
首先,確保已經(jīng)添加了Apache Commons Lang庫的依賴,然后使用`StringUtils`類的`getBytes()`方法進行String轉(zhuǎn)byte[]:
import org.apache.commons.lang3.StringUtils;
public class StringToByteArrayWithApacheCommonsExample {
public static void main(String[] args) {
String inputString = "Hello, World!";
byte[] byteArray = StringUtils.getBytesUtf8(inputString);
System.out.println("轉(zhuǎn)換后的byte數(shù)組:");
for (byte b : byteArray) {
System.out.print(b + " ");
}
}
}
輸出結(jié)果與答案一相同:
轉(zhuǎn)換后的byte數(shù)組:
72 101 108 108 111 44 32 87 111 114 108 100 33
Apache Commons Lang庫提供了許多方便的字符串操作方法,其中`getBytesUtf8()`方法是將字符串轉(zhuǎn)換為UTF-8編碼的byte[]數(shù)組的便捷方式。使用該庫可以更加靈活和方便地進行String轉(zhuǎn)byte[]的操作。