今天微博想改个名,发现名字都让别人先取了。作为一名码农,怎么着也得与重不同点。于是我决定将我想取的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