我有一个时髦的问题(我希望还没有被问到和回答)。首先,我会告诉你我正在尝试做的事情的顺序以及我是如何做的,然后告诉你我在哪里遇到了问题:
- 将字符串转换为 ASCII 数字
- 将这些 ASCII 数字转换为二进制并将它们存储在字符串中
- 将这些二进制数转换回 ASCII 数
- 将 ASCII 数字转换回普通字符
以下是我迄今为止编写的方法:
public static String strToBinary(String inputString){
int[] ASCIIHolder = new int[inputString.length()];
//Storing ASCII representation of characters in array of ints
for(int index = 0; index < inputString.length(); index++){
ASCIIHolder[index] = (int)inputString.charAt(index);
}
StringBuffer binaryStringBuffer = new StringBuffer();
/* Now appending values of ASCIIHolder to binaryStringBuffer using
* Integer.toBinaryString in a for loop. Should not get an out of bounds
* exception because more than 1 element will be added to StringBuffer
* each iteration.
*/
for(int index =0;index <inputString.length();index ++){
binaryStringBuffer.append(Integer.toBinaryString
(ASCIIHolder[index]));
}
String binaryToBeReturned = binaryStringBuffer.toString();
binaryToBeReturned.replace(" ", "");
return binaryToBeReturned;
}
public static String binaryToString(String binaryString){
int charCode = Integer.parseInt(binaryString, 2);
String returnString = new Character((char)charCode).toString();
return returnString;
}
运行代码时出现 NumberFormatException ,我认为这是因为程序试图将二进制数字转换为一个完整的二进制数字而不是单独的字母。根据您在此处看到的内容,是否有更好的方法来整体执行此操作和/或如何告诉计算机在迭代二进制代码时识别 ASCII 字符?希望这很清楚,如果没有,我会检查评论。