Java 无效的空指针异常';没想到
有人能告诉我为什么这里出现空指针异常吗?我检查了代码,没有找到任何地方可以这样做,我有点困惑。任何帮助都将不胜感激。 顺便说一下,该方法应该在指定的字符之间分割字符串,例如:substringChars(“sectionA;sectionB;sectionC;”,“;”);将在每个分号(要拆分的指定字符)之间拆分字符串,并返回带有“sectionA”、“SectionB”和“sectionC”的字符串数组 代码: 谢谢你的帮助! 字符串中有一个名为split(stringregex)的函数,它执行与您尝试执行的相同的操作。你应该使用这个,除非你是为了某些原因试图重新编码轮子Java 无效的空指针异常';没想到,java,Java,有人能告诉我为什么这里出现空指针异常吗?我检查了代码,没有找到任何地方可以这样做,我有点困惑。任何帮助都将不胜感激。 顺便说一下,该方法应该在指定的字符之间分割字符串,例如:substringChars(“sectionA;sectionB;sectionC;”,“;”);将在每个分号(要拆分的指定字符)之间拆分字符串,并返回带有“sectionA”、“SectionB”和“sectionC”的字符串数组 代码: 谢谢你的帮助! 字符串中有一个名为split(stringregex)的
String str = "hello;my;name;is;saigon"
String a[] = str.split(";")
// a[0] = "hello"
// a[1] = "my"
// a[2] = "name"
// ...
您正在使用未初始化的变量 你有
public static String[] output;
它从来都不是未初始化的,当您尝试使用它存储数组时,它使用的是null(不存在的对象)
这将为最多1000个字符串创建字符串数组,并将引用存储在变量输出中:
public static String[] output = new String[1000];
substringChars
方法的开头,添加以下内容:
output = new String[3];
并将for循环更改为使用<而不是,数组输出为null,因为您尚未初始化它,
而不是
public static String[] output;
做
有什么原因不能使用调试器吗?还有,在堆栈跟踪中给出行号的原因。看到了。最好将标记放在代码查看器的“窗口”(当然太窄了)中。您的问题是“输出”数组不存在。仅仅声明引用是不够的。学习编程的标准方法是重新设计几个轮子。是的,杜克林说的,正是我想做的。谢谢你的回复!这基本上就是elimirks所说的,但是当我只需要iString.length()插槽时,这将在输出字符串中创建1000个插槽。谢谢你的回复:D
output = new String[3];
for(int i = 0; i < iString.length(); i++) {
public static String[] output;
public static String[] output = new String[3];