Подтвердить что ты не робот

Как найти длину массива строк?

У меня проблема со следующими строками, где car является массивом String, который не был инициализирован/не имеет элементов.

String car [];
System.out.println(car.length);

Какое возможное решение?

4b9b3361

Ответ 1

Так как car не был инициализирован, он не имеет длины, его значение равно null. Однако компилятор даже не позволит вам скомпилировать этот код как есть, указав следующую ошибку: переменная машина, возможно, не была инициализирована.

Сначала вам нужно инициализировать его, а затем вы можете использовать .length:

String car[] = new String[] { "BMW", "Bentley" };
System.out.println(car.length);

Если вам нужно инициализировать пустой массив, вы можете использовать следующее:

String car[] = new String[] { }; // or simply String car[] = { };
System.out.println(car.length);

Если вам нужно инициализировать его с определенным размером, чтобы заполнить определенные позиции, вы можете использовать следующее:

String car[] = new String[3]; // initialize a String[] with length 3
System.out.println(car.length); // 3
car[0] = "BMW";
System.out.println(car.length); // 3

Однако я бы рекомендовал вместо этого использовать List, если вы намерены добавить к нему элементы:

List<String> cars = new ArrayList<String>();
System.out.println(cars.size()); // 0
cars.add("BMW");
System.out.println(cars.size()); // 1

Ответ 2

Ну, в этом случае переменная car будет null, поэтому разыменование ее (как и при доступе к car.length) выкинет NullPointerException.

Фактически, вы не можете получить доступ к этой переменной вообще до тех пор, пока ей не будет присвоено определенное значение - иначе компилятор будет жаловаться, что "переменная машина может не быть инициализирована".

Что вы пытаетесь сделать здесь (мне не ясно, какое именно "решение" вы ищете)?

Ответ 3

String car [];

- ссылка на массив строк. Вы не видите длину, потому что там нет массива!

Ответ 4

Это не сработает. Сначала вам нужно инициализировать массив. До сих пор у вас есть только ссылка String [], указывающая на null.

Когда вы пытаетесь прочитать член длины, то, что вы на самом деле делаете, это null.length, что приводит к исключению NullPointerException.

Ответ 5

Так как вы еще не инициализировали car, тем не менее, он не существует в JVM (виртуальная машина Java), поэтому вы должны сначала инициализировать его.

Например:

car = new String{"Porsche","Lamborghini"};

Теперь ваш код будет работать нормально.

INPUT:

String car [];
car = new String{"Porsche","Lamborghini"};
System.out.println(car.length);

ВЫВОД:

2

Ответ 6

Как и все вышеприведенные ответы, он предложит исключить NullPointerException.

Пожалуйста, инициализируйте его с некоторыми значениями, а затем вы можете правильно использовать свойство length. Например:

String[] str = { "plastic", "paper", "use", "throw" };
System.out.println("Length is:::" + str.length);

Теперь задан массив 'str', поэтому длина также имеет определенное значение.

Ответ 7

Я думаю, вы ищете это

String[] car = new String[10];
int size = car.length;

Ответ 8

В Java мы объявляем строку массивов (например, автомобиль) как

String []car;
String car[];

Мы создаем массив с использованием нового оператора и определяем его тип: -

String []car=new String[];
String car[]=new String[];

Это назначает ссылку на массив строк для автомобиля. Вы также можете создать массив, инициализируя его: -

String []car={"Sedan","SUV","Hatchback","Convertible"};

Поскольку вы не инициализировали массив и пытаетесь получить к нему доступ, генерируется исключение NullPointerException.