所以我有这段代码:
public static void main (String[] args) throws IOException
{
Queue popcorn = new LinkedList();
BufferedReader in = null;
int j = 0;
try {
File file2 = new File("Events.txt");
in = new BufferedReader(new FileReader(file2));
String str;
String [][] process = new String[][];
while ((str = in.readLine()) != null) {
String[] arr = str.split(" ");
for(int i=0 ; i<str.length() ; i++){
process[j][i] = in.readLine();
}
j++;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
它不起作用。它抛出“变量必须提供维度表达式或数组 初始值设定“
我试图在此网页回答“http://www.chegg.com/homework-help/questions-and-answers/hired-biggy-s-popcorn-handle-popcorn-orders-store-write-java-console-application-reads-dat-q7220573”后对其进行建模 我是PRETTY SURE不起作用。无论如何,这个链表似乎没有成功。就我的String [] []流程声明而言,有人能指出我正确的方向吗?
答案 0 :(得分:3)
您不能只初始化没有维度参数的数组。例如,这是无效的:
int[] array = new int[];
需要像这样初始化:
int[] array = new int[10];
或者简单地说:
int[] array;
// ... //
array = new int[10];
多维数组也是如此。要创建一个包含3个大小为5的数组的数组,您可以输入:
int[][] array = new int[3][5];
但是,对于2D数组,您还可以使用:
int[][] array = new int[3][];
array[0] = new int[5];
array[1] = new int[7];
// ... //
关键是,您需要定义基础数组中有多少个其他数组,也可以选择定义所有数组的大小,或者稍后再添加它们。在这种情况下,您需要更改
String [][] process = new String[][];
类似
String [][] process = new String[x][y];