java字符串与16进制2进制互转

来源:互联网 发布:mp3编辑软件 编辑:程序博客网 时间:2024/04/30 15:38

今天微博想改个名,发现名字都让别人先取了。作为一名码农,怎么着也得与重不同点。于是我决定将我想取的ID转成16进制。。怎么着也得逼格高点。。(自我陶醉中。。)

public static void  main(String [] args){       String str= "Jungle";       String resultBin="" ;       String resultHex="" ;       String hexToBin= "";       String result= "";       char [] charArr= str.toCharArray();       for(int i=0;i<charArr.length;i++){           //字符串转2进制字符串以" "隔开           resultBin+=Integer.toBinaryString( charArr[ i])+ " ";       }       System. out.println("二进制:" +resultBin );       for(int i=0;i<charArr.length;i++){           //字符串转16进制字符串以" "隔开           resultHex+=Integer.toHexString( charArr[ i])+ " ";       }       System. out.println("十六进制:" +resultHex );       String [] resultHexArr=resultHex .split(" ");       for(int i=0;i<resultHexArr. length; i++){           //16进制转2进制           hexToBin+=Integer.toBinaryString(Integer. valueOf(resultHexArr[ i],16))+ " ";       }       String [] hexToBinArr=hexToBin .split(" ");       for(int i=0;i<hexToBinArr. length; i++){           //二进制转char字符           result+= BinstrToChar(hexToBinArr[ i]);       }       System. out.println(result );    }    //二进制转字符串    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 ;    }    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 ;    }

输出:
二进制:1001010 1110101 1101110 1100111 1101100 1100101
十六进制:4a 75 6e 67 6c 65
Jungle

0 0
原创粉丝点击