ちょっと変わった質問があります (まだ尋ねられて回答されていないことを願っています)。最初に、私がやろうとしていることの順序と方法を説明し、次にどこで問題が発生しているかを説明します。
- 文字列を ASCII 数値に変換する
- これらの ASCII 数値をバイナリに変換し、文字列に格納します
- それらの 2 進数を 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 が発生します。これは、プログラムが 2 進数を個別の文字としてではなく、1 つの完全な 2 進数として変換しようとしていることが原因だと思います。ここに表示されている内容に基づいて、これを全体的に行うためのより良い方法はありますか、および/またはバイナリコードを反復処理するときにコンピュータに ASCII 文字を認識するように指示するにはどうすればよいですか? それが明確であることを願っています。そうでない場合は、コメントを確認します。