我正在尝试从分割每个字符/符号/空格的文本文件中读取并创建 char (不可能?)或字符串的多维数组。
包含以下两行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);
}
}
答案 0 :(得分: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>>
。
答案 1 :(得分:0)
每次使用br.readLine()
来读取新行时,您的代码都会包含错误,因此将br.readLine()移动到外部循环并使用此字符串在位置j处查找char。