如何查找字符串数组的长度?
我遇到以下行的问题,其中car
是一个尚未初始化/没有元素的String
数组。
String car []; System.out.println(car.length);
什么是可能的解决方案?
由于car
尚未初始化,因此没有长度,其值为null
。 但是,编译器甚至不允许您按原样编译该代码,抛出以下错误: 变量car可能尚未初始化 。
你需要先初始化它,然后你可以使用.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 cars = new ArrayList (); System.out.println(cars.size()); // 0 cars.add("BMW"); System.out.println(cars.size()); // 1
好吧,在这种情况下, car
变量将为null
,因此取消引用它(就像访问car.length
时car.length
)将抛出NullPointerException
。
实际上, 在完全分配了某个值之前,你根本无法访问该变量 – 否则编译器会抱怨“变量汽车可能尚未初始化”。
你在这里尝试做什么(我不清楚你正在寻找什么样的“解决方案”)?
String car [];
是对String-s数组的引用。 你看不到长度,因为那里没有arrays!
这不行。 首先必须初始化数组。 到目前为止,您只有一个String []引用,指向null
。
当您尝试读取length成员时,实际执行的操作是null.length
,这会导致NullPointerException。
由于您尚未初始化car
,因此它在JVM(Java虚拟机)中不存在,因此您必须首先对其进行初始化。
例如 :
car = new String{"Porsche","Lamborghini"};
现在你的代码运行正常。
INPUT:
String car []; car = new String{"Porsche","Lamborghini"}; System.out.println(car.length);
OUTPUT:
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 []car=new String[]; String car[]=new String[];
这会将一个字符串数组的引用分配给汽车。 您也可以通过初始化来创建数组: –
String []car={"Sedan","SUV","Hatchback","Convertible"};
由于您尚未初始化数组并且您尝试访问它,因此抛出NullPointerException 。
- 如何让多个listview响应不同的onItemClickListener?
- 根据EditText值更改SeekBar进度
- 通过surfaceview使用zxing条形码阅读器
- 如何在覆盖它之后使用原始的hashCode()方法
- React-native build error Android – java.lang.UnsupportedClassVersionError:com / android / build / gradle / AppPlugin:不支持的major.minor版本52.0
- 将ArrayList 转换为byte
- Java XNOR运算符
- 如何在jetty中启用日志记录?
- 我是否可以将流上传到Azure blob存储而不预先指定其长度?