2016-10-12 3 views
3

私はread()メソッドを持っていて、その中にString(それらの間にスペースを含む)を区切り、それらを2次元配列に入れたいと思いますが、スペース。配列が初期化された後、配列はCSVコンストラクタに渡され、それは独自の2D配列を作成しています。 問題は、私は常に以下のエラーが発生することです:CSV csv = new CSV(sr)で「変数srが初期化されていない可能性があります。 配列が有効な文字列を取得することを確認するにはどうすればよいですか?Javaの2次元配列へのCSV入力

private String[][] tomb; 

private CSV(String[][] t2) { 
    tomb = new String[t2.length][]; 
    for(int i = 0; i < t2.length; i++) { 
     tomb[i] = new String[t2[i].length]; 
     for(int j = 0; j < t2[i].length; j++) { 
      tomb[i][j] = t2[i][j]; 
     } 
    } 
} 

public static CSV read(Scanner sc) { 

    String[][] sr;  
    int n = 0; 
    while (sc.hasNextLine()) 
    { 
     String line = sc.nextLine(); 
     String[] str = line.split(","); 
     sr = new String[str.length][]; 
     for (int i = 0; i < str.length; i++) { 
      sr[i][n].replaceAll("\\s+",""); 

     } 
     n++; 
    } 

    CSV csv = new CSV(sr); 
    return csv; 

} 

答えて

1

あなたは初期設定でnullsrを設定することで、エラーを解決することができます

String[][] sr = null; 

あなたはsrが正しく設定されたことを確認したい場合はsrはまだしばらくnullであれば、あなたは確認することができますループは完了する。

+0

ありがとうございます!その問題を解決しましたが、実行したいときは、sr [i] [n] .replaceAll( "\\ s +"、 "");でNullPointerExceptionが発生します。行。配列 –

+0

@AkosFajsziのための単一の文字列を与えることはできません。 'sr'がnullであるため、その行でヌルポインタ例外が発生しています。 'sr = new String [str.length] [];の後に' sr'に何かを格納する必要があります。 – Libby