如何查找字符串数组的长度?

时间:2011-02-01 11:44:20

标签: java

我遇到以下问题,其中car是一个尚未初始化/没有元素的String数组。

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

什么是可能的解决方案?

8 个答案:

答案 0 :(得分:52)

由于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

答案 1 :(得分:5)

嗯,在这种情况下,car变量将为null,因此取消引用它(就像访问car.length时一样)将抛出NullPointerException

实际上,你无法在所有中访问该变量,直到明确分配了一些值 - 否则编译器会抱怨“变量汽车可能尚未初始化”。

你在这里尝试做什么(我不清楚你正在寻找什么样的“解决方案”)?

答案 2 :(得分:3)

String car [];

是对String-s数组的引用。你看不到长度,因为那里没有数组!

答案 3 :(得分:3)

这不起作用。首先必须初始化数组。到目前为止,您只有一个String []引用,指向null

当您尝试读取length成员时,实际执行的操作是null.length,这会导致NullPointerException。

答案 4 :(得分:2)

由于您尚未初始化car,因此它在JVM(Java虚拟机)中不存在,因此您必须首先对其进行初始化。

例如:

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

现在你的代码运行正常。

<强> INPUT:

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

<强>输出:

2

答案 5 :(得分:2)

由于上述所有答案都表明它会抛出NullPointerException。

请使用某些值初始化它,然后您可以正确使用length属性。例如:

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

现在定义了数组'str',因此它的长度也有一个定义的值。

答案 6 :(得分:1)

我认为你正在寻找这个

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

答案 7 :(得分:0)

在Java中,我们将一个数组String(例如car)声明为

String []car;
String car[];

我们使用new运算符创建数组并指定其类型: -

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

这会将一个字符串数组的引用分配给汽车。 您也可以通过初始化来创建数组: -

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

由于您尚未初始化数组并且您尝试访问该数组,因此会抛出 NullPointerException