精华内容
下载资源
问答
  • 最近在学习redis 的bitmap相关命令时, 用到了字符串和二进制的转换。于是用java 写了一个二进制与字符串相互转换的一个...将普通字符串转换二进制字符串 public static String toString(String binaryStr)...

    最近在学习redis 的bitmap相关命令时, 用到了字符串和二进制的转换。于是用java 写了一个二进制与字符串相互转换的一个工具类

    方法签名 方法描述
    public static String toBinaryString(String str) 将普通字符串转换为二进制字符串
    public static String toString(String binaryStr) 将二进制字符串转换为普通字符串
    public static int countBitOne(String binaryStr) 统计二进制字符串中的1的数量

    1. 转换工具类源码

    /**
     * 二进制字符串转换工具类
     * @Auth zongf
     * @Date 2019-05-07
     */
    public class BinaryStringConverteUtil {
    
        private static final String BIN_SEPARATOR = " ";
    
    
        /**
         * 字符串转换为二进制字符串
         * @param str 普通字符串
         * @return String 二进制字符串
         * @Auth zongf
         * @Date 2019-05-07
         */
        public static String toBinaryString(String str) {
    
            if (str == null) return null;
    
            StringBuffer sb = new StringBuffer();
    
            byte[] bytes = str.getBytes();
            for (byte aByte : bytes) {
                sb.append(Integer.toBinaryString(aByte) + BIN_SEPARATOR);
            }
            return sb.toString();
        }
    
    
        /**
         * 二进制字符串转换为普通字符串
         * @param binaryStr 二进制字符串
         * @return String 普通字符串
         * @Auth zongf
         * @Date 2019-05-07
         */
        public static String toString(String binaryStr) {
    
            if (binaryStr == null) return null;
    
            String[] binArrays = binaryStr.split(BIN_SEPARATOR);
    
    
            StringBuffer sb = new StringBuffer();
            for (String binStr : binArrays) {
                char c = binstrToChar(binStr);
                sb.append(c);
            }
            return sb.toString();
        }
    
        /**
         * 统计二进制字符串中1的个数
         * @param binaryStr 二进制字符,如:1101
         * @return int
         * @Auth zongf
         * @Date 2019-05-07
         */
        public static int countBitOne(String binaryStr) {
            int cnt = 0;
            if(binaryStr != null) {
                byte[] bytes = binaryStr.getBytes();
                for (byte aByte : bytes) {
                    if (aByte==49) {
                        cnt++;
                    }
                }
            }
            return cnt;
        }
    
        /**
         * 二进制字符转换为int数组
         * @param binStr 二进制字符串
         * @return int[]
         * @Auth zongf
         * @Date 2019-05-07
         */
        private static int[] binstrToIntArray(String binStr) {
            char[] temp=binStr.toCharArray();
            int[] result=new int[temp.length];
            for(int i=0;i<temp.length;i++) {
                result[i]=temp[i]-48;
            }
            return result;
        }
    
        /**
         * 将二进制转换成字符
         * @param binStr 二进制字符串
         * @return char
         * @Auth zongf
         * @Date 2019-05-07
         */
        private static char binstrToChar(String binStr){
            int[] temp=binstrToIntArray(binStr);
            int sum=0;
            for(int i=0; i<temp.length;i++){
                sum +=temp[temp.length-1-i]<<i;
            }
            return (char)sum;
        }
    
    }
    

    2. 测试

    2.1 测试用例

    @Test
    public void test1(){
    
        String str = "abc";
    
        // 转换为二进制字符串
        String binaryStr = BinaryStringConverteUtil.toBinaryString(str);
    
        // 获取1的数量
        int cnt = BinaryStringConverteUtil.countBitOne(binaryStr);
    
        // 反向转换
        String newStr = BinaryStringConverteUtil.toString(binaryStr);
    
        System.out.println("源字符串:" + str);
        System.out.println("二进制字符串:" + binaryStr);
        System.out.println("1位数量:" + BinaryStringConverteUtil.countBitOne(binaryStr));
        System.out.println("新字符串:" + newStr);
    }
    

    2.2 测试输出

    源字符串:abc
    二进制字符串:1100001 1100010 1100011
    1位数量:10
    新字符串:abc
    
    展开全文
  • java 字符串二进制相互转换

    千次阅读 2016-08-30 09:51:22
    二进制转换字符串Java代码  // 二进制字符串  public static String byte2hex(byte[] b)  {   StringBuffer sb = new StringBuffer();   String tmp 

    原文地址: http://piziwang.iteye.com/blog/483758

    二进制转换成字符串:

    Java代码  收藏代码
    1. // 二进制转字符串  
    2. public static String byte2hex(byte[] b)   
    3. {  
    4.    StringBuffer sb = new StringBuffer();  
    5.    String tmp = "";  
    6.    for (int i = 0; i < b.length; i++) {  
    7.     tmp = Integer.toHexString(b[i] & 0XFF);  
    8.     if (stmp.length() == 1){  
    9.         sb.append("0" + tmp);  
    10.     }else{  
    11.         sb.append(tmp);  
    12.     }  
    13.       
    14.    }  
    15.    return sb.toString();  
    16. }  

     

    字符串转二进制:

    Java代码  收藏代码
    1. // 字符串转二进制  
    2. public static byte[] hex2byte(String str) {   
    3.   if (str == null){  
    4.    return null;  
    5.   }  
    6.     
    7.   str = str.trim();  
    8.   int len = str.length();  
    9.     
    10.   if (len == 0 || len % 2 == 1){  
    11.    return null;  
    12.   }  
    13.     
    14.   byte[] b = new byte[len / 2];  
    15.   try {  
    16.        for (int i = 0; i < str.length(); i += 2) {  
    17.             b[i / 2] = (byte) Integer.decode("0X" + str.substring(i, i + 2)).intValue();  
    18.        }  
    19.        return b;  
    20.   } catch (Exception e) {  
    21.    return null;  
    22.   }  
    23. }  
    展开全文
  • 原文地址:java字符串二进制的相互转化作者:billdong  package mimaxue; public class StrBinaryTurn {   //将Unicode字符串转换成bool型数组  public boolean[] StrToBool(String input){   boolean[] ...
     

    package mimaxue;


    public class StrBinaryTurn {
        //将Unicode字符串转换成bool型数组
        public boolean[] StrToBool(String input){
            boolean[] output=Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input)));
            return output;
        }
        //将bool型数组转换成Unicode字符串
        public String BoolToStr(boolean[] input){
            String output=BinstrToStr(Binstr16ToBinstr(BoolToBinstr16(input)));
            return output;
        }
        //将字符串转换成二进制字符串,以空格相隔
        private String StrToBinstr(String str) {
            char[] strChar=str.toCharArray();
            String result="";
            for(int i=0;i<strChar.length;i++){
                result +=Integer.toBinaryString(strChar[i])+ " ";
            }
            return result;
        }
        //将二进制字符串转换成Unicode字符串
        private String BinstrToStr(String binStr) {
            String[] tempStr=StrToStrArray(binStr);
            char[] tempChar=new char[tempStr.length];
            for(int i=0;i<tempStr.length;i++) {
                tempChar[i]=BinstrToChar(tempStr[i]);
            }
            return String.valueOf(tempChar);
        }
        //将二进制字符串格式化成全16位带空格的Binstr
        private String BinstrToBinstr16(String input){
            StringBuffer output=new StringBuffer();
            String[] tempStr=StrToStrArray(input);
            for(int i=0;i<tempStr.length;i++){
                for(int j=16-tempStr[i].length();j>0;j--)
                    output.append('0');
                output.append(tempStr[i]+" ");
            }
            return output.toString();
        }
        //将全16位带空格的Binstr转化成去0前缀的带空格Binstr
        private String Binstr16ToBinstr(String input){

    展开全文
  • 字符串转各种进制 Integer.valueOf(String str,2) /...Long.toBinaryString(long i) //整数转二进制字符串 Integer.toBinaryString(Integer i) // 整数转二进制字符串 Long.toHexString(long i) //整数转十六进制字符串
    字符串转各种进制
    Integer.valueOf(String str,2)  //二进制
    Integer.valueOf(String str)  //十进制
    Integer.valueOf(String str,16)  //十六进制
    
    各种进制转字符串
    Long.toBinaryString(long i)  //整数转二进制字符串
    Integer.toBinaryString(Integer i)	// 整数转二进制字符串
    Long.toHexString(long i)	//整数转十六进制字符串
    Integer.toHexString(Integer i)	//整数转十六进制字符串
    
    展开全文
  • java字符串二进制的相互转化

    千次阅读 2017-04-27 13:38:45
    package mimaxue; 提供了一些字符串和二进制的转化方法 ... //将Unicode字符串转换成bool型数组  public boolean[] StrToBool(String input){  boolean[] out
  • // 将Unicode字符串转换成bool型数组 public boolean[] StrToBool(String input) { boolean[] output = Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input))); return output; } // 将bool型数组转换
  • //将字符串转换二进制字符串,以空格相隔 private String StrToBinstr(String str) { char[] strChar=str.toCharArray(); String result=""; for(int i=0;i;i++){ result +=Integer.toBinaryString(strChar...
  • ... // 将Unicode字符串转换成bool型数组 public boolean[] StrToBool(String input) { boolean[] output = Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input))); return output; ...
  • 字符串转换二进制字节流 String ori = "待转换的字符串"; ori = ori.getBytes(StandardCharsets.UTF_8); 二进制字节流转换为字符串 //以socket数据监听为例 byte[] bytes = new byte[inputStream....
  • public class StrBinaryTurn { //将Unicode字符串转换成bool型数组 public boolean[] StrToBool(String input){ boolean[] output=Binstr16ToBool(BinstrToBinstr16(StrToBinstr(input)));...
  •  public class StrBinaryTurn { //将Unicode字符串转换成bool型数组 public boolean[] StrToBool(String input){ boolean[] output=Binstr16ToBool(BinstrToBinstr16(StrToBinstr (input))); return output; } //将...
  • import java.io.ByteArrayOutputStream;  import java.lang.Character.UnicodeBlock;  import java.util.regex.Matcher;... * 该类处理字符串的转码,可以处理字符串二进制字符、16进制字符、
  • UNICODE字符串二进制字符串互转

    千次阅读 2016-12-13 16:14:32
    有时会使用到的字符串二进制字符串互相转换。 import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; public class Test { /** * @param args */ public static ...
  • 转载自:Java byte 数组转换16进制字符串 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示。 所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和...
  • 有时候需要把文件转成二进制数组或者字符串在数据库中进行存储,下面的方式就可以很好的实现: package com.zhang.test.tools; import org.springframework.util.FileCopyUtils; import java.io....
  • 学习途中遇到的一些问题,记录下来。...字符串二进制 Integer.toBinaryString(str) (2).字符串转八进制 String.format("%o, str) (3).字符串转八进制 String.format("%x", str) 3.进制间...
  • * 字符串转换二进制流 * * @param str 字符串 * @return 二进制流 */ private static String toBinary(String str) { if (null == str || str.trim().length() == 0) { return null; } char[] strChar...
  • python的base64转换: import base64 def strToBase64(s): ... 将字符串转换为base64字符串 :param s: :return: ''' strEncode = base64.b64encode(s.encode('utf8')) return str(strEncode, enco...
  • public class HexConver { public static void main(String[] args) { String content = "这是... System.out.println("原字符串:"+content); String hex2Str = conver2HexStr(content.getBytes()); System.o

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,057
精华内容 422
关键字:

java字符串转换二进制

java 订阅