字符串到字节数组,字节数组到Java中的字符串
时间:2020-02-23 14:37:26 来源:igfitidea点击:
今天,我们将学习如何在Java中将String转换为字节数组。
我们还将学习如何在Java中将字节数组转换为String。
字符串到字节数组
我们可以使用平台的默认字符集,使用String类的getBytes()方法将字符串编码为字节序列。
这个方法是重载的,我们也可以传递Charset
作为参数。
这是一个简单的程序,显示了如何在Java中将String转换为字节数组。
package com.theitroad.util; import java.util.Arrays; public class StringToByteArray { public static void main(String[] args) { String str = "hyman"; byte[] byteArr = str.getBytes(); //print the byte[] elements System.out.println("String to byte array: " + Arrays.toString(byteArr)); } }
下图显示了运行上述程序时的输出。
我们还可以使用以下代码获取字节数组。
byte[] byteArr = str.getBytes("UTF-8");
但是,如果我们提供了字符集名称,那么我们将不得不捕获UnsupportedEncodingException
异常或者将其抛出。
更好的方法是使用Java 1.7中引入的" StandardCharsets"类,如下所示。
byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);
在Java中,这是将String转换为字节数组的所有不同方法。
Java字节数组到字符串
让我们看一个简单的程序,该程序显示如何在Java中将字节数组转换为String。
package com.theitroad.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); } }
下图显示了以上程序产生的输出。
您是否注意到我在创建字节数组时提供了char?
由于自动装箱,char'P'在字节数组中被转换为80,因此可以正常工作。
这就是为什么字节数组到字符串转换的输出相同的原因。
字符串还有一个构造函数,我们可以其中提供字节数组和Charset作为参数。
因此,以下代码也可以用于在Java中将字节数组转换为String。
String str = new String(byteArray, StandardCharsets.UTF_8);
String类还具有一种将字节数组的子集转换为String的方法。
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 }; String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
上面的代码非常好," str"值为" PAN"。
这就是在Java中将字节数组转换为String的全部内容。