数字の0と1からなるテキストファイルから複数の行を読み込み、その行を2次元配列に格納したいとします。 2 * 2、4 * 4、および8 * 8の配列を読み込むと、コードが正常に動作します。しかし、16 * 16以上のときは、このエラーメッセージ(java.util.InputMismatchException:入力文字列: "0010101111011011")が表示されます。これは私のコードです。なぜ私のコードは8行の整数を読み込みますが、16を読み込むとInputMissMatchエラーが出るのですか?
public static void storingIntegers(Scanner input, int [][]array){
for (int i = 0; i < array.length; i++) {
//This variable reads the line which contains the numbers
int row= input.nextInt();
for (int j = array[i].length-1; j>=0; j--) {
//this line will take the last number in the line and store it in the array from index 0
//start storing from the last index
array[i][j] = row%10;
row=row/10;
}
}
}
私はこのメッセージが与えられた理由とこの問題を解決する方法を知りたいですか?ここ
はファイル
0010101111011011
1101101111011011
0010110011110011
1110110011110011
1101101011011010
0010101011110011
1111001111011010
0011111111110011
0010101111011011
1101101111011011
0010110011110011
1110110011110011
1101101011011010
0010101011110011
1111001111011010
0011111111110011
から読み取らなければならない数字の16 * 16の配列のサンプル入力でいただきありがとうございます、
私はあなたを試してみました方法。はい、エラーメッセージを修正しますが、問題は解決しません。実際に私は別の方法でそれを解決しました。私は(x)変数に(long)を格納してから%10をとり、別の(int)変数(y)に格納してからint配列に格納します。 –
私は参照してください。さて、まだ有効な答え、特にBigIntegerの部分です。大きな数字を入力すると、同じ問題に遭遇します。また、実装の精度が失われている可能性がありますか?私はあなたが収集した番号のいくつかの重要なビットを投げ捨てていると思います。 – Azurlake