У меня проблема со следующими строками, где car является массивом String, который не был инициализирован/не имеет элементов.
String car [];
System.out.println(car.length);
Какое возможное решение?
У меня проблема со следующими строками, где car является массивом String, который не был инициализирован/не имеет элементов.
String car [];
System.out.println(car.length);
Какое возможное решение?
Так как 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
Ну, в этом случае переменная car будет null, поэтому разыменование ее (как и при доступе к car.length) выкинет NullPointerException.
Фактически, вы не можете получить доступ к этой переменной вообще до тех пор, пока ей не будет присвоено определенное значение - иначе компилятор будет жаловаться, что "переменная машина может не быть инициализирована".
Что вы пытаетесь сделать здесь (мне не ясно, какое именно "решение" вы ищете)?
String car [];
- ссылка на массив строк. Вы не видите длину, потому что там нет массива!
Это не сработает. Сначала вам нужно инициализировать массив. До сих пор у вас есть только ссылка String [], указывающая на null.
Когда вы пытаетесь прочитать член длины, то, что вы на самом деле делаете, это null.length, что приводит к исключению NullPointerException.
Так как вы еще не инициализировали car, тем не менее, он не существует в JVM (виртуальная машина Java), поэтому вы должны сначала инициализировать его.
Например:
car = new String{"Porsche","Lamborghini"};
Теперь ваш код будет работать нормально.
INPUT:
String car [];
car = new String{"Porsche","Lamborghini"};
System.out.println(car.length);
ВЫВОД:
2
Как и все вышеприведенные ответы, он предложит исключить NullPointerException.
Пожалуйста, инициализируйте его с некоторыми значениями, а затем вы можете правильно использовать свойство length. Например:
String[] str = { "plastic", "paper", "use", "throw" };
System.out.println("Length is:::" + str.length);
Теперь задан массив 'str', поэтому длина также имеет определенное значение.
Я думаю, вы ищете это
String[] car = new String[10];
int size = car.length;
В Java мы объявляем строку массивов (например, автомобиль) как
String []car;
String car[];
Мы создаем массив с использованием нового оператора и определяем его тип: -
String []car=new String[];
String car[]=new String[];
Это назначает ссылку на массив строк для автомобиля. Вы также можете создать массив, инициализируя его: -
String []car={"Sedan","SUV","Hatchback","Convertible"};
Поскольку вы не инициализировали массив и пытаетесь получить к нему доступ, генерируется исключение NullPointerException.