Я не могу остановить отображение null в моем выводе для моего 1d массива в java - PullRequest
0 голосов
/ 29 апреля 2020

Я изо всех сил пытаюсь объявить меня как целое число, и я не могу понять, почему вывод выходит как ноль. Цель состоит в том, чтобы сделать последовательность Мой код:

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]);
        }
    }

Ответы [ 3 ]

0 голосов
/ 29 апреля 2020
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» с нулем сделает его снова нулевым. Вы должны инициализировать каждый myArray [i] как Ответ Amir MB или можете попробовать это:

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]);
    }
}
0 голосов
/ 29 апреля 2020
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];

Это массив объектов, и все объекты инициализируются нулем, если ему не назначено явное значение.

Итак, каждый элемент массива должен быть присвоен пустой строке; сделайте это в первую очередь для l oop, как упоминалось выше.

Или присвойте значения во время объявления самого массива. Стоит для массива небольшого размера, но не рекомендуется для большего.

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

У класса массивов есть метод fill.

String[] myArray = new String[10];
Arrays.fill(myArray, "");
0 голосов
/ 29 апреля 2020

Проблема в том, что ни один из элементов в массиве не имеет значения, поэтому они равны null. Вы можете использовать следующий код, который инициализирует весь элемент с пустой строкой в ​​первом l oop:

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]);
}
...