Java中的字符串转字节数组,字节数组转字符串
今天我们将学习如何在Java中将字符串转换为字节数组。我们还将学习如何在Java中将字节数组转换为字符串。
字符串转为字节数组
我们可以使用String类的getBytes()方法,使用平台默认的字符集将字符串编码为一系列字节。这个方法是重载的,我们还可以传递Charset作为参数。下面是一个简单的程序,展示了如何在Java中将字符串转换为字节数组。
package com.Olivia.util;
import java.util.Arrays;
public class StringToByteArray {
public static void main(String[] args) {
String str = "PANKAJ";
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中。
将Java字节数组转换为字符串
让我们来看一个简单的程序,展示如何在Java中将字节数组转换为字符串。
package com.Olivia.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);
}
}
以下图片显示了上述程序生成的输出。你有没有注意到我在创建字节数组时提供了字符?这是因为自动装箱,字符’P’被转换为字节数组中的80。这就是为什么字节数组转换为字符串的输出相同。字符串还有一个构造函数,我们可以提供字节数组和字符集作为参数。因此,下面的代码也可以用于在Java中将字节数组转换为字符串。
String str = new String(byteArray, StandardCharsets.UTF_8);
字符串类也有一个方法可以将字节数组的子集转换为字符串。
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
以上代码非常完美,’str’的值将是’PAN’。这就是Java中将字节数组转换为字符串的全部内容。
您可以从我们的 GitHub 仓库中查看更多数组示例。
参考:getBytes API文档