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]
二