我试图从文本文件("puzzle.txt")中读取一些行,并将它们保存到2D数组中,作为单词搜索问题的一部分。前十一行如下所示:
10 10
WVERTICALL
ROOAFFLSAB
ACRILIATOA
NDODKONWDC
DRKESOODDK
OEEPZEGLIW
MSIIHOAERA
ALRKRRIRER
KODIDEDRCD
HELWSLEUTH前两个整数(R和C)是行数和列数,它们都正确地读取。然而,其余的都不起作用。当我试图将第2-10行打印为字符串时,我得到的只是:
[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]..。诸若此类。
import java.util.Scanner;
import java.util.Arrays;
import java.io.File;
public class WordSearch {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(new File("puzzle.txt"));
/* Creating a 2D array of size R x C, variables in puzzle.txt
specifying the number of rows and the number of columns
respectively, and putting the next R lines of puzzle.txt into
that array. */
// Reading in variables R and C from puzzle.txt
int R = sc.nextInt();
int C = sc.nextInt();
// Initializing array of size R x C
char[][] grid = new char[R][C];
String s = sc.nextLine();
for (int i=0;i<R;i++) {
for (int j=0;j<C;j++) {
grid[j] = s.toCharArray();
System.out.print(Arrays.toString(grid[j]));
}
}
}我是Java新手,所以我猜这个问题对那些经验丰富的人来说是非常明显的。帮助?
发布于 2013-09-28 17:47:36
尝试:
char[][] grid = new char[R][];
sc.nextLine(); // flush the line containing R and C
for (int i=0;i<R;i++) {
grid[i] = sc.nextLine().toCharArray(); // char array of size C
System.out.print(Arrays.toString(grid[i]));
}发布于 2013-09-28 17:46:10
你得补充一下:
s = sc.nextLine();在此之前
grid[i] = s.toCharArray();记得把它加在前面。摆脱内环。
https://stackoverflow.com/questions/19069871
复制相似问题