【发布时间】:2014-03-17 16:03:55
【问题描述】:
我编写了一个小程序,其中有一个带有字符串名称的二维数组。在嵌套的 for 循环中,我检查数组每个元素中的第一个字符。如果第一个字符是'A' || 'E' || '我' || 'O' || 'U',我用 FileWriter 将该元素写入文件。但是,每次我尝试编译程序时都会得到 NullPointerException。这是代码:
FileWriter fw = new FileWriter("imena.txt");
String polje[][] = new String[5][5];
polje[0][0] = "Janez";
polje[0][1] = "Tine";
polje[0][2] = "Miha";
polje[0][3] = "Klemen";
polje[0][4] = "Jure";
polje[1][0] = "Tone";
polje[1][1] = "Andrej";
polje[1][2] = "Janko";
polje[1][3] = "Nejc";
polje[1][4] = "Erik";
for(int i = 0; i < polje.length; i++) {
for(int j = 0; j < polje[0].length; j++) {
if(polje[i][j].charAt(0) == 'A') {
fw.write(polje[i][j] + '\n');
}
}
}
如果我将 if 更改为 if(polje[1][1].charAt(0) == 'A') 它运行得非常好,但我想遍历数组中的所有元素。任何帮助将不胜感激。
事实证明,我忘记初始化数组中的所有元素。我不敢相信我自己看不到问题。 :)
感谢大家的帮助! ;)
【问题讨论】:
-
您的第二个循环可能更安全地编码为:
for(int j = 0; j < polje[i].length; j++)。您是否也考虑过使用List<List<String>>而不是String[][]?
标签: java nullpointerexception charat