我很难将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, "");