2017-01-03 4 views
-2

게임 오브 라이프를 만들려고했지만 초기에 어려운 점을 알았습니다. :(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 번째 문자를 가져옵니다. 테스트 행은 Scanner "sc"를 사용하여 파일에서 읽습니다. "?" 연산자는 인라인 if "if"입니다. 문자가 '*'이면 출력은 '1'이고, 그렇지 않으면 (연산자 ':') '0'입니다. –