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文档

bannerAds