1

如果我在编译时知道数组的格式,我已经知道如何在 Java 中创建不同长度的数组。
前任:

char[][] array = { { 'a', 'b', 'c'}, {'d'}, {'e', 'f'}}; //etc....

问题是我需要在运行时制作。我不知道编译时数组需要的大小,但我会在运行时知道。

这里的目标是在 java 中制作(并具有 java 中数组的优点(如 .length))以制作 C 中的内容:

char[][] arrayC = malloc(outerArraySize);
for(int i = 0; i < outerArraySize; i++){
    arrayC[i] = malloc(innerArraySize[i]);
}

此 C 代码是在此处临时制作的,因此它可能包含错误,但其目的只是为了澄清问题信息。

无论如何在Java中正确地做到这一点?

4

1 回答 1

5

当然 - 只需使用数组创建表达式

char[][] array = new char[outerArraySize][];
for (int i = 0; i < outerArraySize; i++) {
    array[i] = new char[innerArraySize[i]];
}

您可能还需要考虑使用字符串而不是字符数组,具体取决于具体情况。

于 2012-10-14T07:05:36.990 回答