Как я могу инициализировать массив String с длиной 0 в Java?
Документы Java для метода
String[] java.io.File.list(FilenameFilter filter)
включает это в описание возврата:
Массив будет пуст, если каталог пуст или если никакие имена не были приняты фильтром.
Как мне сделать аналогичную вещь и инициализировать массив String (или любой другой массив, если на то пошло) иметь длину 0?
Ответы
Ответ 1
Как говорили другие,
new String[0]
действительно создаст пустой массив. Тем не менее, есть одна хорошая вещь о массивах - их размер не может измениться, поэтому вы всегда можете использовать ту же пустую ссылку на массив. Поэтому в вашем коде вы можете использовать:
private static final String[] EMPTY_ARRAY = new String[0];
а затем просто возвращайте EMPTY_ARRAY
каждый раз, когда вам это нужно - нет необходимости создавать новый объект каждый раз.
Ответ 2
String[] str = new String[0];
?
Ответ 3
String[] str = {};
Но
return {};
не будет работать, поскольку информация о типе отсутствует.
Ответ 4
Хорошо, я действительно нашел ответ, но думал, что буду "импортировать" вопрос в SO в любом случае
String[] files = new String[0];
или
int[] files = new int[0];
Ответ 5
Вы можете использовать ArrayUtils.EMPTY_STRING_ARRAY от org.apache.commons.lang3
import org.apache.commons.lang3.ArrayUtils;
class Scratch {
public static void main(String[] args) {
String[] strings = ArrayUtils.EMPTY_STRING_ARRAY;
}
}
Ответ 6
Сделайте функцию, которая не вернет null, вместо этого вернет пустой массив, который вы можете пройти ниже кода, чтобы понять.
public static String[] getJavaFileNameList(File inputDir) {
String[] files = inputDir.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
return new File(current, name).isFile() && (name.endsWith("java"));
}
});
return files == null ? new String[0] : files;
}
Ответ 7
Все, что вам нужно сделать, это
String str = "";
String[] newString = new String[str.length()];
Это даст пустой String Array.
Из моего видео
Спасибо, его Пите! Этот ответ по-прежнему важен, так как показывает, как строка пуста и как она работает. Например, массив int не может изменить размер или изменить его на другой размер из-за того, что 0 является целым числом. Произойдет ошибка ArrayIndexOutOfBoundsException. Должна быть разница между String и int. Однако опять же, String имеет двойные кавычки и работает для изменения размера. Конечно, это более длинный путь. Это все еще показывает рассуждение между int и главным образом String.