标记器和“线程中的异常”主“java.lang.NullPointerException”运行时错误
我试图对一个字符串进行标记,并将每个标记分配给java中的数组单元。这是我要标记化的代码,但我遇到了以下运行时错误:
Exception in thread "main" java.lang.NullPointerException
该错误出现在第10行
有人能帮我解决这个错误吗?举个例子
#1 Scanner in = new Scanner(System.in);
#2 System.out.print("Enter your name: ");
#3 String name = in.nextLine();
#4 String a[]=null;
#5 int i=0;
#6 StringTokenizer tokenizer=new StringTokenizer(name," ");
#7 while (tokenizer.hasMoreTokens())
#8 {
#9 String token = tokenizer.nextToken();
#10 a[i]= token;
#11 i++;
#12 }
# 1 楼答案
null
在处理之前分配,所以NullPointerException
试试看
或者别的什么
# 2 楼答案
将数组初始化为NULL,然后设置其条目。。。当然你会得到一个NullPointerException
必须使用成员计数初始化数组,比如String[]a=new String[10]
# 3 楼答案
你在做什么
我认为您不知道数组的大小,所以选择
List
成功
到
替换
到
另请参见
# 4 楼答案
字符串数组为空。在使用字符串数组之前,先创建一个新实例:
更多信息请参见此处:http://download.oracle.com/javase/1.4.2/docs/api/java/util/StringTokenizer.html#countTokens()
更简单的解决方案是使用数组列表而不是数组。ArrayList的优点是,可以向列表中添加值,并且不必在开始时指定固定的大小,这意味着大小是可变的
例如:
如果现在想知道列表中有多少元素,请使用
list.size()
# 5 楼答案
因为您将
null
赋值给变量a
,所以当您稍后尝试使用该变量时,它将导致NullPointerException
。你需要给a
分配一些有意义的内容下面是代码中的问题: