3
我有一個read()方法,裏面我想要分開字符串(它們之間有空格)並將它們放入一個二維數組中,但在此之前,我擺脫了所有空間。數組初始化後,它被賦予CSV構造函數,並創建它自己的2D數組。 問題是我總是收到以下錯誤:「csv = new CSV(sr)」中的變量sr可能未被初始化。 如何確保我的數組獲取有效的字符串?在java中輸入到兩個二維數組的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;
}
謝謝!它解決了這個問題,但當然當我想運行它時,NullPointerException出現在sr [i] [n] .replaceAll(「\\ s +」,「」);行。我不能給數組 –
@AkosFajszi一個單一的字符串,你會得到一個空指針異常,因爲'sr'爲空。你需要在'sr = new String [str.length] [];'之後的'sr'中存儲一些東西 – Libby