二維數組我看了關於這一主題的線程,但我沒能解決我所面臨的與初始化for循環中的多個一維數組二維int數組的問題。JAVA:正開始從一維數組中的for循環
下面是我的代碼片段,其不如下:
- 讀取STD輸入字符串的一行。
- 轉換此行成一維int數組(通過劃分字符串)
- 填充二維數組的行,每一維數組順序
限制條件:
的輸入的大小是已知的(行數和列數),它將始終爲整數。
Scanner in = new Scanner(System.in); String[] line = new String[8]; String[] rows = new String[7]; int[] row_int = new int[7]; int player=0,j=0; for (int i =0; i <3 ;++i) { line[i] = in.nextLine(); System.out.println("REading ..."+line[i]); rows = line[i].split("\\s+"); j=0; for (String s : rows) { row_int[j]=Integer.parseInt(s); j++; } input[i]=row_int; System.out.println(Arrays.toString(row_int)+" for the value of i "+i); System.out.println("The Array is \n"+Arrays.deepToString(input)); }
我現在面臨的問題是二維數組的值被覆蓋,每一次新一維數組的值: 下面是一個示例輸出:
1 2 3 4
REading ...1 2 3 4
[1, 2, 3, 4, 0, 0, 0] for the value of i 0
The Array is
[[1, 2, 3, 4, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]]
4 5 6
REading ...4 5 6
[4, 5, 6, 4, 0, 0, 0] for the value of i 1
The Array is
[[4, 5, 6, 4, 0, 0, 0],
[4, 5, 6, 4, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]]
33 44 55
REading ...33 44 55
[33, 44, 55, 4, 0, 0, 0] for the value of i 2
The Array is
[[33, 44, 55, 4, 0, 0, 0],
[33, 44, 55, 4, 0, 0, 0],
[33, 44, 55, 4, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0]]
縮進輸出爲了更好的可讀性。
請建議,如果有更好的方法來初始化與一維數組二維數組。
將'row_int'的初始化(也是聲明)移動到外部'for'循環中... –
Usagi是對的:您在'for'循環的每次迭代中重新使用'row_int'。您需要每次創建一個新的int行。 – dave
謝謝你們..作品 – eshi14