Значение по умолчанию при создании объекта String

108
31 октября 2021, 00:50

Имеется инициализация:

String[] newStr = new String[3];

Размер объекта newStr типа String принимает значение 3, простым языком говоря, создается массив строк размером 3 с неизвестной ещё длиной.

По умолчанию строки заполняются null-значениями, т.е. по факту:

newStr[0] = 'null';
newStr[1] = 'null';

При попытке внести что-нибудь в newStr[0] (например), к тексту добавляется ещё и 'null'. Добавляем слово "Регистр" и на выходе получаем "nullРегистр".

Вот часть моего кода, попадающего под вопрос:

char array[];
/* ТУТ КОД СОРТИРУЕТ СИМВОЛЫ И ДОБАВЛЯЕТ ИЗ В МАССИВ array[]*/
//добавление символов из переменной ch типа char в объект newStr типа String
public void connect(int i, char ch[]){
    for(int j = 0; j < ch.length; j++) {
        newStr[i] += ch[j];
    }
}
//создание объекта
public void setNewSize(String str[]){
    newStr = new String[str.length];
}

Вопрос:

Как убрать null при инициализации или вообще, как избавиться от null?

Answer 1

В элементах массива не 'null' (что это вообще такое?), а null.

Строка "null" - это то, как конвертируется null-ссылка в строку. Инициализируйте массив пустыми строками.

String[] newStr = new String[3];
java.util.Arrays.setAll(newStr, i -> ""); // or java.util.Arrays.fill(newStr, "");

или

String[] newStr = new String[] {"", "", ""};
READ ALSO
Анти-паттерн сессия-на-операцию

Анти-паттерн сессия-на-операцию

В одной статье по Hibernate прочитал, что если вы хотите использовать многопоточность, то создавайте новую сессию для каждой CRUD-операцииТо есть...

114
ошибка при передаче данных между серверами

ошибка при передаче данных между серверами

В универе задали задание сделать сайт с усложненной архитектурой, чтобы был сервер на PHP, который от клиента принимал запросы, потом отправлял...

170
Обработка нажатия на оповещение

Обработка нажатия на оповещение

Нужно чтобы при нажатии на оповещение с определенным текстом открывалась определенная вкладка viewPager, но как это реализовать?

101