Java中String與二進位制碼的相互轉換
阿新 • • 發佈:2019-02-09
把字串轉成二進位制碼
public class stringTest {
public static void main(String[] args) {
String str = "abc";
String binary = toBinary(str);
System.out.println(binary);
}
public static String toBinary(String str){
//把字串轉成字元陣列
char[] strChar=str.toCharArray();
String result="" ;
for(int i=0;i<strChar.length;i++){
//toBinaryString(int i)返回變數的二進位制表示的字串
//toHexString(int i) 八進位制
//toOctalString(int i) 十六進位制
result +=Integer.toBinaryString(strChar[i])+ " ";
}
return result;
}
}
結果:abc–>1100001 1100010 1100011
將二進位制碼轉成字串
public class stringTest {
public static void main(String[] args) {
String binary = "1100001 1100010 1100011";
System.out.println(toString(binary));
}
public static String toString(String binary) {
String[] tempStr=binary.split(" ");
char[] tempChar=new char[tempStr.length];
for(int i=0;i<tempStr.length;i++) {
tempChar[i]=BinstrToChar(tempStr[i]);
}
return String.valueOf(tempChar);
}
//將二進位制字串轉換成int陣列
public 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;
}
//將二進位制轉換成字元
public 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;
}
}
結果:1100001 1100010 1100011 –>abc