2017-01-03 2 views
-2

Game of Lifeは作成しようとしていますが、早い段階でハード・ポイントを打ちました。 :(Javaの2D配列をテキストファイルから埋め込む際にエラーが発生する

私はスターティンググリッド/マトリックスとしての「o」と「*」のテキストファイルを持っていると私のコンストラクタは、そのファイルを読み込み、それを持つ2次元配列を埋めるために持っている。

問題は、私が持っているということですそれが言うエラー「sc.nextLine();」、私は配列を埋めるために行方不明です何あまりにもわからないんだけど

import java.io.File; 
import java.util.ArrayList; 
import java.util.Scanner; 

    public class LifeGrid { 

    int x, y; 

    public LifeGrid(int newy, int newx, String filename) { 
    x = newx; 
    y = newy; 
    File file = new File(filename); 
    Scanner sc = new Scanner(file); 
    int[][] board = new int[y][x]; 
    while (sc.hasNext()) 
    { 
     for (int i = 0; i < y; i++) 
     { 
     for (int j = 0; j < x; j++) 
     { 
      board[i][j] = sc.nextLine(); <- error here 
     } 
     } 
    } 
} 
+0

あなたを投稿する必要があります。コード:) – davidxxx

+0

インデントを修正します。人々に試して読んでもらうように頼んだら、コードを読みやすくする必要があります。 – khelwood

+0

私はコードを追加する前に間違って投稿しましたが、今はすべてうまくいくはずです:D – Toby

答えて

0

最も簡単な解決策:

for (int i = 0; i < y; i++) 
    { 
    String line = sc.nextLine(); 
    for (int j = 0; j < x; j++) 
    { 
     board[i][j] = line.charAt(j)=='*'?1:0; 
    } 
    } 
+0

「line.charAt(j)== '*'?1:0;」という行は何ですか?行う? – Toby

+0

テキスト行からj番目の文字を受け取ります。テストラインはスキャナ "sc"を使用してファイルから読み込まれます。 「?」演算子はインライン "if"です。文字が「*」の場合、出力は「1」、そうでない場合(演算子「:」)は「0」です。 –

関連する問題