Java二进制数组与字符串互转
流程图
flowchart TD
A(开始)
B(将字符串转为二进制数组)
C(将二进制数组转为字符串)
D(结束)
A --> B
B --> C
C --> D
步骤及代码示例
步骤 | 代码示例 | 说明 |
---|---|---|
将字符串转为二进制数组 | java byte[] binaryArray = stringToBinaryArray("Hello World"); |
使用stringToBinaryArray 方法将字符串转换为二进制数组 |
将二进制数组转为字符串 | java String str = binaryArrayToString(binaryArray); |
使用binaryArrayToString 方法将二进制数组转换为字符串 |
代码实现
public class BinaryStringUtil {
public static void main(String[] args) {
// 测试字符串转为二进制数组
String str = "Hello World";
byte[] binaryArray = stringToBinaryArray(str);
System.out.println("字符串转为二进制数组结果:" + Arrays.toString(binaryArray));
// 测试二进制数组转为字符串
String result = binaryArrayToString(binaryArray);
System.out.println("二进制数组转为字符串结果:" + result);
}
/**
* 将字符串转为二进制数组
*
* @param str 字符串
* @return 二进制数组
*/
public static byte[] stringToBinaryArray(String str) {
byte[] binaryArray = new byte[str.length()]; // 创建与字符串长度相同的二进制数组
for (int i = 0; i < str.length(); i++) {
binaryArray[i] = (byte) str.charAt(i); // 将字符串每个字符转为对应的二进制值
}
return binaryArray;
}
/**
* 将二进制数组转为字符串
*
* @param binaryArray 二进制数组
* @return 字符串
*/
public static String binaryArrayToString(byte[] binaryArray) {
StringBuilder strBuilder = new StringBuilder();
for (byte b : binaryArray) {
strBuilder.append((char) b); // 将二进制数组每个元素转为对应的字符
}
return strBuilder.toString();
}
}
解释与说明
在Java中,实现二进制数组与字符串互转的过程主要包括两个步骤:将字符串转为二进制数组和将二进制数组转为字符串。下面将分步骤进行说明。
将字符串转为二进制数组
首先,我们需要定义一个方法stringToBinaryArray
来实现字符串转为二进制数组的功能。该方法接受一个字符串作为参数,并返回一个二进制数组。
在方法内部,我们首先创建一个与字符串长度相同的二进制数组binaryArray
,用于存储每个字符的二进制值。然后,我们使用一个循环遍历字符串的每个字符,并将每个字符转为对应的二进制值,存储到二进制数组中。为了将字符转为二进制值,我们需要使用(byte) str.charAt(i)
将字符强制转换为字节类型。
最后,我们返回二进制数组作为方法的结果。
将二进制数组转为字符串
接下来,我们需要定义一个方法binaryArrayToString
来实现二进制数组转为字符串的功能。该方法接受一个二进制数组作为参数,并返回一个字符串。
在方法内部,我们首先创建一个StringBuilder
对象strBuilder
,用于存储转换后的字符串。然后,我们使用一个循环遍历二进制数组的每个元素,并将每个元素转为对应的字符,追加到strBuilder
中。为了将二进制值转为字符,我们需要使用(char) b
将字节类型转换为字符类型。
最后,我们使用strBuilder.toString()
将StringBuilder
对象转换为字符串,并返回作为方法的结果。
测试
在代码实现中,我们通过一个main
方法进行了简单的测试。我们将字符串Hello World
转为二进制数组,并将二进制数组再转为字符串,然后打印转换结果。
输出结果为:
字符串转为二进制数组结果:[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
二