1

各文字/シンボル/スペースを分割するテキスト ファイルから文字(不可能ですか?) または文字列の多次元配列を読み取って作成しようとしています。

以下の 2 行を含むテキスト ファイル 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

StringtoCharArray()が問題を解決する可能性があります。読み取った各行でそれを呼び出し、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 に答える