All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zpf.file.BinaryUtil Maven / Gradle / Ivy

The newest version!
package com.zpf.file;

/**
 * @author Created by ZPF on 2021/5/17.
 */
public class BinaryUtil {

    private static final String BINARY_SEPARATOR = " ";

    //字符串转换为二进制字符串
    public static String strToBinary(String str) {
        if (str == null) return null;
        StringBuilder sb = new StringBuilder();
        byte[] bytes = str.getBytes();
        for (byte aByte : bytes) {
            sb.append(Integer.toBinaryString(aByte)).append(BINARY_SEPARATOR);
        }
        return sb.toString();
    }


    //二进制字符串转换为普通字符串
    public static String binaryToStr(String binaryStr) {
        if (binaryStr == null) return null;
        String[] binArrays = binaryStr.split(BINARY_SEPARATOR);
        StringBuilder sb = new StringBuilder();
        for (String binStr : binArrays) {
            char c = binaryToChar(binStr);
            sb.append(c);
        }
        return sb.toString();
    }

    //二进制字符转换为int数组
    private static int[] binaryToIntArray(String binaryStr) {
        char[] temp = binaryStr.toCharArray();
        int[] result = new int[temp.length];
        for (int i = 0; i < temp.length; i++) {
            result[i] = temp[i] - 48;
        }
        return result;
    }

    // 将二进制转换成字符
    private static char binaryToChar(String binaryStr) {
        int[] temp = binaryToIntArray(binaryStr);
        int sum = 0;
        for (int i = 0; i < temp.length; i++) {
            sum += temp[temp.length - 1 - i] << i;
        }
        return (char) sum;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy