我无法阻止 null 出现在我的 java 中我的一维数组的输出中



我很难将I声明为interger,我不明白为什么输出为null。目标是制作一个序列我的代码是:

public static void main(String[] args) {
String[] myArray = new String[10];
for (int i = 0; i < 10; i++) {
for (int j = 0; j <= i; j++) {
myArray[i] = myArray[i] + "A";
}
System.out.println(myArray[i]);
}
}

问题是数组中没有任何项有值,因此它们是null。您可以使用以下代码,在第一个循环中用空字符串初始化所有项目:

for (int i = 0; i < 10; i++) {
myArray[i] = "";
for (int j = 0; j <= i; j++) {
myArray[i] = myArray[i] + "A";
}
System.out.println(myArray[i]);
}
public static void main(String[] args) { 
String[] myArray = new String[10];
for (int i = 0; i < 10; i++) {
for (int j = 0; j <= i; j++) {
myArray[i] = myArray[i] + "A";
}
System.out.println(myArray[i]);
}
}

在这条线上

myArray[i]=myArray[i]+"A";

右侧的

myArray[i]为null,因此将"A"与null连接将使其再次为null。您应该将每个myArray[i]初始化为Amir MB Answered,或者可以尝试以下操作:

public static void main(String[] args) { 
String[] myArray = new String[10];
for (int i = 0; i < 10; i++) {
for (int j = 0; j <= i; j++) {
myArray[i] = "A" + myArray[i];
}
System.out.println(myArray[i]);
}
}
for (int i = 0; i < 10; i++) {
myArray[i] = "";
for (int j = 0; j <= i; j++) {
myArray[i] = myArray[i] + "A";
}
System.out.println(myArray[i]);
}

String[] myArray = new String[10];

这是一个对象数组,如果没有显式值分配给它,则所有对象都初始化为null

因此,数组的每个元素都需要分配给一个空字符串;如上所述,在第一个for循环中执行此操作。

或者,在数组声明过程中赋值。对于小型阵列来说是值得的,但不建议使用较大的阵列。

String[] myArray = new String[]{"", "", "", "", "", "", "", "", "", ""};

Arrays类有一个填充方法。

String[] myArray = new String[10];
Arrays.fill(myArray, "");

最新更新