2016-06-12 4 views
-1

タブ区切りテキストファイルを2D配列にインポートしようとしましたが、分割された文字列の値を配列に代入しようとすると、配列は必要ですが、文字列が見つかりました "。私はこれがすべてでは役立ちますが、ファイルは基本的にの束である場合もthis.lab[x][y]=Integer.parseInt(str[x]);Javaエラー「テキストファイルをインポート中に配列が必要ですが、文字列が見つかりました」

が、私にはわからないの行にエラーが発生します

try { 
      FileReader fr = new FileReader ("Laberinto.txt"); 
      BufferedReader br = new BufferedReader(fr); 

      String s,str; 
      String[] buffer; 

      int y=0; 

      while ((s=br.readLine())!= null){ 
       StringBuilder builder = new StringBuilder(); 
       str=builder.append(s).toString(); 
       buffer=str.split("\t"); 

       for (int x=0;x<str.length();x++){ 
        this.lab[x][y]=Integer.parseInt(str[x]); 
       } 

       y++; 
      } 
} 

:ここ

は、これまでの私のコードです1と0はtabulatorで区切られた迷路(1は壁、0は廊下)を形成する。

誰かが間違って何をしているのか教えていただけますか?

ありがとうございました!

+0

あなたの配列を初期化したことさえありません。 – Apurva

+0

無駄な 'StringBuilder'を削除し、' buffer = s.split( "\ t") 'を最初に使用してください。コードがあまりにも難解です。 – Axel

答えて

1

strは文字列です - 入力した行...これはあなたが望むものではありません。

あなたのbufferを解析する必要があります。

for (int x=0;x<buffer.length();x++){ 
    this.lab[x][y]=Integer.parseInt(buffer[x]); 
} 
+0

OH ****あなたの右のイムこのような馬鹿です。夜遅くこれをコーディングするためにありがとう! –

2

parseInt(str[x])

あなたは、配列の添字を使用することはできません。Stringへのインデックスに、[]、と明らかにstrStringです。
charAt()と次にString.valueOf(char)を使用することをお勧めします。必要に応じてcharを戻します。

+0

実際に配列ラボで値をstrに割り当てようとしていませんD: –

+0

私の答えをもう一度読んで、それが正しい理由を理解してください。 – Idos

+0

決して気にしていないことを知っています。私はstrではないバッファを解析する必要があります。これは夜遅くまでコーディングするために得られるものです。 –

1

あなたは次のようにSTRを宣言:

String s,str; 

をし、次のようにそれを使用してみました:

this.lab[x][y]=Integer.parseInt(str[x]); 

宣言はそれを宣言するStringとなります。使用法(= !!のRHSを参照)は、Stringの配列として使用しようとします。


実際、あなたの本当の誤りは、間違ったことを解析しようとしていることです。私はそれがおそらくこれであるべきだと思います:

buffer=str.split("\t"); 
    for (int x=0;x<buffer.length;x++){ 
     this.lab[x][y]=Integer.parseInt(buffer[x]); 
    } 
+0

ええ、あなたの右は私が笑った!これは夜遅くまでコーディングするためのものです。 –

+0

あなたの句読点や文法も苦しんでいます。それはあなたの "あなた"ではないはずです:-) –

+0

ええ、私はそれが本当に遅れていると言ったので、私は自分自身をもっと恥ずかしい前に朝にコーディングを続けると思う –

関連する問題