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) {
StringBuffer output = new StringBuffer();
String[] tempStr = StrToStrArray(input);
for (int i = 0; i < tempStr.length; i++) {
for (int j = 0; j < 16; j++) {
if (tempStr[i].charAt(j) == '1') {
output.append(tempStr[i].substring(j) + " ");
break;
}
if (j == 15 && tempStr[i].charAt(j) == '0')
output.append("0" + " ");
}
}
return output.toString();
} // 二进制字串转化为boolean型数组 输入16位有空格的Binstr
private boolean[] Binstr16ToBool(String input) {
String[] tempStr = StrToStrArray(input);
boolean[] output = new boolean[tempStr.length * 16];
for (int i = 0, j = 0; i < input.length(); i++, j++)
if (input.charAt(i) == '1')
output[j] = true;
else if (input.charAt(i) == '0')
output[j] = false;
else
j--;
return output;
} // boolean型数组转化为二进制字串 返回带0前缀16位有空格的Binstr
private String BoolToBinstr16(boolean[] input) {
StringBuffer output = new StringBuffer();
for (int i = 0; i < input.length; i++) {
if (input[i])
output.append('1');
else
output.append('0');
if ((i + 1) % 16 == 0)
output.append(' ');
}
output.append(' ');
return output.toString();
} // 将二进制字符串转换为char
private 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;
} // 将初始二进制字符串转换成字符串数组,以空格相隔
private String[] StrToStrArray(String str) {
return str.split(" ");
} // 将二进制字符串转换成int数组
private 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;
} }

  原文地址:http://blog.csdn.net/q394895302/article/details/50604929

java字符串与二进制的相互转化的更多相关文章

  1. js计算字符串的字节数和字符串与二进制的相互转化

    一.js计算字符串的字节数方法: //blob获取字符串的字节 var debug = "好的"; var blob = new Blob([debug],{type : 'tex ...

  2. JS字符串与二进制的相互转化

    //字符串转ascii码,用charCodeAt(); //ascii码转字符串,用fromCharCode(); var str = "A"; var code = str.ch ...

  3. JS字符串与二进制的转化

    JS字符串与二进制的相互转化 1 2 3 4 5 //字符串转ascii码,用charCodeAt(); //ascii码转字符串,用fromCharCode(); var str = "A ...

  4. 华为上机测试题(数字字符串转二进制-java)

    PS:此题满分,可参考 /*  * 题目:数字字符串转二进制 * 描述: 输入一串整数,将每个整数转换为二进制数,如果倒数第三个Bit是“0”,则输出“0”,如果是“1”,则输出“1”. 题目类别: ...

  5. Java 中的字符串转为二进制

    /** * 将字符串转为二进制 */ public class StrConversion { public static void main(String args[]) { String str ...

  6. Java中的二进制及基本的位运算

    Java中的二进制及基本的位运算 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二 ...

  7. Java基础系列-二进制操作

    原创文章,转载请标注出处:<Java基础系列-二进制操作> 概述 Java源码中涉及到大量的二进制操作,非常的复杂,但非常的快速. Java二进制表示法 首先了解下二进制,二进制是相对十进 ...

  8. Java 字符串格式化详解

    Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...

  9. (转)Java字符串

    转自:http://blog.sina.com.cn/s/blog_899678b90101brz0.html 创建字符串有两种方式:两种内存区域(字符串池,堆)1," " 引号创 ...

随机推荐

  1. GIF助手帮助说明

    生成的文件位置? 生成的GIF等文件存储在 /sdcard/gifdir/ 目录下. 为什么分享到微信.Twitter等平台失败? 微信.Twitter等平台对GIF文件大小有限制,微信限制为1MB, ...

  2. python 爬虫 之BeautifulSoup

    BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后便可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单. ...

  3. winform 客户端采用HTTP协议与服务端通信

    本来从来没有仔细研究过Http协议,今天因为公司业务需求,调试了半天,终于现在会Winform用Http协议与服务端通信了,其中常用的有POST和Get方式: 仔细看了人人网和新浪等大部分都是采用GE ...

  4. hdu1051

    #include<iostream> #include<algorithm> using namespace std; struct SIZE { int l; int w; ...

  5. <base target="_self"/>标签的用法

    语法 <base target="value"> 属性值 值 描述 _blank 在新窗口中打开被链接文档. _self 默认.在相同的框架中打开被链接文档. _par ...

  6. Ocelot(三)- 服务发现

    Ocelot(三)- 服务发现 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/10907856.html 源码地址:https ...

  7. cf780E(dfs)

    题目链接: http://codeforces.com/problemset/problem/780/E 题意: 给出一个 n 个点 m 条边的图, 有 k 个人, 初始位置可以为任意位置, 每个人最 ...

  8. 洛谷P2258 子矩阵

    P2258 子矩阵 题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4 ...

  9. 洛谷P3070 [USACO13JAN]岛游记Island Travels

    P3070 [USACO13JAN]岛游记Island Travels 题目描述 Farmer John has taken the cows to a vacation out on the oce ...

  10. 关于Android模块化我有一些话不知当讲不当讲

    关于Android模块化我有一些话不知当讲不当讲 最近公司一个项目使用了模块化设计,本人参与其中的一个小模块开发,但是整体的设计并不是我架构设计的,开发半年有余,在此记录下来我的想法. 关于Andro ...