gpt4 book ai didi

java - 初始化期间分配 null 的字符串数组中的空指针异常

转载 作者:行者123 更新时间:2023-12-01 19:31:34 25 4
gpt4 key购买 nike

我是java初学者。现在我在实践中遇到问题。实际上我想从 StringTokenizer 类获取字符串标记,并想将这些标记分配给字符串数组。但是我遇到了空指针异常。我代码在这里。

public class Token {
public static void main(String str[])
{
String str1="This is my first page";
StringTokenizer str2=new StringTokenizer(str1);
int i=0;
String d[]=null;
while(str2.hasMoreTokens())
{
d[i]=str2.nextToken();

}
System.out.println(d);
}
}

最佳答案

Java中的数组必须被初始化。这:

String d[] = null;

本质上创建了对数组的引用,该引用为空。因此NullPointerException .

更重要的是,即使它被初始化,大小也是固定并且数组无法调整大小。你不能这样做:

String[] d = new String[]; // won't compile: size not specified

继续,你会:

d[i] = "whatever";

i始终为 0。

使用 List<String>相反:

List<String> list = new ArrayList<>();

.add(theString)给它:

while (str2.hasMoreTokens())
list.add(str2.nextToken());

最后但并非最不重要的一点是:

System.out.println(d);

不会做你认为它会做的事。它将打印数组引用的字符串表示形式。如果您想要数组及其元素的字符串表示形式,请执行以下操作:

System.out.println(Arrays.toString(d));

关于java - 初始化期间分配 null 的字符串数组中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17781509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com