1

我正在尝试从拆分每个字符/符号/空格的文本文件中读取并创建一个多维字符数组(不可能?)或字符串

包含以下两行 2x10 的文本文件:

abcd  x/@#
% addk a 2

我希望数组槽要么包含空格,要么至少用预定义的字符替换它。

BufferedReader br = new BufferedReader(new FileReader("files/myFile.txt"));
for(int i=0; i<2; ++i)
{
    for(int j=0; j<10; ++j)
    {
        chars[i][j] = br.readLine().charAt(j);

    }
}
4

2 回答 2

2

字符串toCharArray()可能会解决您的问题。在读取的每一行上调用它并将其输入到 char[][] 数组的每一行中。

// in constants declaration
public final static int ROWS = 2;
public final static int COLS = 10;

// somewhere else in your code.
char[][] chars = new char[ROWS][COLS];

// making sure to catch exceptions with opening and reading file
BufferedReader br = new BufferedReader(new FileReader("files/myFile.txt"));

for(int i = 0; i < ROWS; ++i) {
  String line = br.readLine();

  // check line exists, has a length of COLS, else throw exception.

  chars[i] = line.toCharArray();
}

ROWS 和 COLS 是程序常量,你最好确保这些数字是正确的,否则这段代码会火上浇油。List<List<Character>>也许更好用。

于 2013-08-10T17:46:25.230 回答
0

您的代码包含一个错误,每次您使用br.readLine()它来读取新行时,因此将 br.readLine() 移动到外循环并使用此字符串在位置 j 处查找 char。

于 2013-08-10T18:35:55.533 回答