从文本文件中读取空格到Char / String数组中

时间:2013-08-10 17:40:57

标签: java arrays initialization char whitespace

我正在尝试从分割每个字符/符号/空格的文本文件中读取并创建 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);

    }
}

2 个答案:

答案 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。