我有一个read()方法,在里面我想分开Strings(它们之间有空格)并将它们放在一个二维数组中,但在此之前我摆脱了所有的空间。数组初始化后,它将被赋予CSV构造函数,并创建自己的2D数组。 问题是我总是得到以下错误:"变量sr可能没有被初始化"在CSV csv =新CSV(sr)。 如何确保我的数组获得有效的String?
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;
}
答案 0 :(得分:1)
您可以通过在初始化中将sr
设置为null
来解决错误:
String[][] sr = null;
如果您想确保sr
设置正确,可以在while循环完成后检查sr
是否仍为null
。