如何在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使用.