teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

コード修正

2016/04/12 14:56

投稿

Odacchi
Odacchi

スコア907

answer CHANGED
@@ -37,8 +37,8 @@
37
37
  if (x<MASS && y<MASS){
38
38
  // csvのxとyが範囲内ならboardArrayに反映
39
39
  boardarray[x][y]=Integer.valueOf(token.nextToken());
40
- x++;
41
40
  }
41
+ x++;
42
42
  }
43
43
  x = 0;
44
44
  y++;

2

補足追記

2016/04/12 14:55

投稿

Odacchi
Odacchi

スコア907

answer CHANGED
@@ -34,7 +34,8 @@
34
34
  token = new StringTokenizer(line, ",");
35
35
  while (token.hasMoreTokens()) {
36
36
  //内側のループは、横方向のマスに、つまりxに対応
37
- if (x<MASS){
37
+ if (x<MASS && y<MASS){
38
+ // csvのxとyが範囲内ならboardArrayに反映
38
39
  boardarray[x][y]=Integer.valueOf(token.nextToken());
39
40
  x++;
40
41
  }

1

補足追記

2016/04/11 01:03

投稿

Odacchi
Odacchi

スコア907

answer CHANGED
@@ -1,3 +1,45 @@
1
1
  どんなエラーでしょうか?
2
2
 
3
- 改行コードが紛れ込んでいたりしませんか?
3
+ 改行コードが紛れ込んでいたりしませんか?
4
+
5
+
6
+ 2016/04/11 追記
7
+ ---
8
+
9
+ 下記の部分が問題ありますね。
10
+ まず、xとyが増え続ける一方です。
11
+
12
+ ```Java
13
+ while ((line = bufferedReader.readLine()) != null) {
14
+ token = new StringTokenizer(line, ",");
15
+ while (token.hasMoreTokens()) {
16
+ if (x<MASS){
17
+ boardarray[x][y]=Integer.valueOf(token.nextToken());
18
+ x++;
19
+ }else if(y<MASS){
20
+ boardarray[x][y]=Integer.valueOf(token.nextToken());
21
+ y++;
22
+ }
23
+ }
24
+
25
+ }
26
+ ```
27
+
28
+ ここでやりたいことは、一行舐めるごとにxを0にし、yをインクリメントではないですか?
29
+ おそらく下記のようになるかと。
30
+
31
+ ```Java
32
+ while ((line = bufferedReader.readLine()) != null) {
33
+ // 外側のループは各行、つまりyに対応
34
+ token = new StringTokenizer(line, ",");
35
+ while (token.hasMoreTokens()) {
36
+ //内側のループは、横方向のマスに、つまりxに対応
37
+ if (x<MASS){
38
+ boardarray[x][y]=Integer.valueOf(token.nextToken());
39
+ x++;
40
+ }
41
+ }
42
+ x = 0;
43
+ y++;
44
+ }
45
+ ```