UNICODE字符串与二进制字符串互转

UNICODE字符串与二进制字符串互转

有时会使用到的字符串与二进制字符串互相转换。


import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;



public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		String src = "discover1";
		String origin = "";
		char [] strs = src.toCharArray();
		
		System.out.println(Arrays.toString(strs));
		/**字符串转二进制串,调用Integer.toBinaryString(Char char)*/
		for(int i = 0; strs.length > i; i++){
			origin += Integer.toBinaryString(strs[i])  + " ";
			
		}
		System.out.println("字符串转二进制串结果" + origin);
		
		/**二进制串转字符串,
		 * 1:需要先将二进制字符串中的每一段转为CHAR类型()
		 *	  转法为:将此段二进制字符串转为INT数组,从INT数组中得到CHAR
		 *			转时应该注意每一段二进制字符串的长度能够转为一个CHAR
		 * 2:将得到的每一个CHAR组成数组,使用String.valueOf(char [] )来得到字符串
		 * */
		String [] strarray = origin.split(" ");
		char [] preToStr = new char[strarray.length];
		for(int i = 0; i < strarray.length; i++){
			preToStr[i] = binstrToChar(strarray[i]);
			
		}
		
		String s = new String(preToStr);
		System.out.println(s);
		System.out.println("二进制串转字符串结果:" + String.valueOf(preToStr));

	}
	
    // 将二进制字符串转换为char
    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;  
    } 
    
 // 将二进制字符串转换成int数组
	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;
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值