如何在Java中将字符串转换为字节数组
时间:2020-01-09 10:35:29 来源:igfitidea点击:
这篇文章展示了如何在Java中将String转换为字节数组(Byte [])。
在Java中将字符串转换为字节数组的选项
Java中的String类具有getBytes()方法,用于将String编码为字节序列。此方法也有两个重载的变体,我们可以在其中传递要用于编码的字符集。
- byte [] getBytes()–使用平台的默认字符集将此字符串编码为字节序列,并将结果存储到新的字节数组中。
- byte [] getBytes(String charsetName)引发UnsupportedEncodingException-使用命名的字符集将此String编码为字节序列,并将结果存储到新的字节数组中。
- byte [] getBytes(Charset charset)–使用给定的字符集将此字符串编码为字节序列,并将结果存储到新的字节数组中。
使用getBytes()方法
本示例说明如何使用getBytes()方法将Java中的String转换为字节数组。
import java.util.Arrays;
public class StringToByteArr {
public static void main(String[] args) {
String str = "This is a test String";
// converting to byte[]
byte[] b = str.getBytes();
System.out.println("String as Byte[]- " + Arrays.toString(b));
}
}
输出:
String as Byte[]- [84, 104, 105, 115, 32, 105, 115, 32, 97, 32, 116, 101, 115, 116, 32, 83, 116, 114, 105, 110, 103]
打印字节数组时,它会显示字符串中字符的ASCII码。
如果要指定在Java中将String转换为Byte []时要使用的字符集,则可以使用重载的getBytes()方法。如果使用的字符集名称作为String传递,则确实需要捕获异常UnsupportedEncodingException。
因此最好使用传递字符集实例的第二个重载方法。
以下程序显示了两种方式;将字符集名称作为String传递,并在其中传递字符集实例。
public class StringToByteArr {
public static void main(String[] args) {
String str = "This is a test String";
try{
byte[] b = str.getBytes("UTF-16");
System.out.println("String as Byte[]" + b);
}catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] byteArr;
// Using the charSet instance
byteArr = str.getBytes(Charset.forName("UTF-16"));
byteArr = str.getBytes(StandardCharsets.UTF_16);
}
}
从程序中可以看到,传递字符集实例时可以用两种方法完成。
byteArr = str.getBytes(Charset.forName("UTF-16"));
第二个byteArr = str.getBytes(StandardCharsets.UTF_16);可以在Java 7使用.

