推荐答案
使用Java的标准库进行string转byte[]操作,在Java中,将String转换为byte[]可以使用String类的`getBytes()`方法。`getBytes()`方法将String对象转换为byte[]数组,使用平台的默认字符集(通常是UTF-8)来编码字符串。
以下是一个示例代码:
public class StringToByteArrayExample {
public static void main(String[] args) {
String inputString = "Hello, World!";
byte[] byteArray = inputString.getBytes();
System.out.println("转换后的byte数组:");
for (byte b : byteArray) {
System.out.print(b + " ");
}
}
}
输出结果为:
转换后的byte数组:
72 101 108 108 111 44 32 87 111 114 108 100 33
这里将字符串"Hello, World!"转换为了对应的字节数组。
其他答案
-
有时候需要明确使用特定的字符集来编码字符串,尤其是涉及到多语言字符集或网络传输时。
Java的String类的`getBytes()`方法支持传入一个字符集参数,以明确指定编码方式。例如,使用UTF-16编码字符串:
public class StringToByteArrayWithCharsetExample {
public static void main(String[] args) {
String inputString = "Hello, 世界!";
try {
byte[] byteArray = inputString.getBytes("UTF-16");
System.out.println("转换后的byte数组:");
for (byte b : byteArray) {
System.out.print(b + " ");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
输出结果:
转换后的byte数组:
-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转byte[]操作,其中Apache Commons Lang库提供了更多的编码选项和便捷的工具方法。
首先,确保已经添加了Apache Commons Lang库的依赖,然后使用`StringUtils`类的`getBytes()`方法进行String转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("转换后的byte数组:");
for (byte b : byteArray) {
System.out.print(b + " ");
}
}
}
输出结果与答案一相同:
转换后的byte数组:
72 101 108 108 111 44 32 87 111 114 108 100 33
Apache Commons Lang库提供了许多方便的字符串操作方法,其中`getBytesUtf8()`方法是将字符串转换为UTF-8编码的byte[]数组的便捷方式。使用该库可以更加灵活和方便地进行String转byte[]的操作。