项目赢得';t运行、Java、StringBuilder、数组
我正在试着让我的程序运行。但是,我得到了一个项目赢得';t运行、Java、StringBuilder、数组,java,arrays,stringbuilder,Java,Arrays,Stringbuilder,我正在试着让我的程序运行。但是,我得到了一个NullPointerException 任何帮助都将不胜感激。我不想包含太多的代码;所以,我只包括eclipse所说的错误的块 这是puzzle类的构造函数(java.lang.NullPointerException) 我纠正了第一个问题并添加了“StringBuilder puzzle=new StringBuilder();”。现在,我在同一行中得到了这些错误 Exception in thread "main" java.lang.Strin
NullPointerException
任何帮助都将不胜感激。我不想包含太多的代码;所以,我只包括eclipse所说的错误的块
这是puzzle类的构造函数<代码>(java.lang.NullPointerException)
我纠正了第一个问题并添加了“StringBuilder puzzle=new StringBuilder();”。现在,我在同一行中得到了这些错误
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.AbstractStringBuilder.setCharAt(Unknown Source)
at java.lang.StringBuilder.setCharAt(Unknown Source)
at Puzzle.<init>(Puzzle.java:55)
at PuzzleGameConsole.main(PuzzleGameConsole.java:22)
您的问题可能是您从未初始化拼图,从未为其分配
新的StringBuilder()
。i、 e
StringBuilder puzzle = new StringBuilder();
e、 g
公共类难题
{
private StringBuilder puzzle=新建StringBuilder();//****添加此项!
公共拼图(字符串解决方案)
{
for(int index=0;index
更重要的是,您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的行,找出哪个变量为null,然后回溯到代码中以了解原因。相信我,您会一次又一次地遇到这些问题。您的问题可能是您从未初始化拼图,从未为其分配新的
StringBuilder()
。i、 e
StringBuilder puzzle = new StringBuilder();
e、 g
公共类难题
{
private StringBuilder puzzle=新建StringBuilder();//****添加此项!
公共拼图(字符串解决方案)
{
for(int index=0;index
更重要的是,您需要学习如何调试NPE(NullPointerException)的一般概念。您应该仔细检查抛出它的行,找出哪个变量为null,然后回溯到代码中以了解原因。相信我,您会一次又一次地遇到这些问题。您遇到的问题是,StringBuilder最初是空的,您无法设置一个不存在的值/字符。对于您试图做的事情,一个简单的解决方案是使用正则表达式
private StringBuilder puzzle;
Puzzle(String theSolution) {
// create a buffer where all non space are turned into -
puzzle = new StringBuilder(theSolution.replaceAll("\\S", "-"));
}
您遇到的问题是,StringBuilder最初是空的,您无法设置一个不存在的值/字符。对于您试图做的事情,一个简单的解决方案是使用正则表达式
private StringBuilder puzzle;
Puzzle(String theSolution) {
// create a buffer where all non space are turned into -
puzzle = new StringBuilder(theSolution.replaceAll("\\S", "-"));
}
为什么会发生NullPointerException? NullPointerException是由尝试取消引用 不指向任何东西的指针;指针为空。这是 可以找到NullPointerException的两种常见场景:
String myString=null代码>
System.out.println(myString.length())代码>
System.out.println(amethodthattreturnsnall().toString())代码>
位于com.foo.example.NullPointerExample.main(NullPointerExample.java:21) 堆栈跟踪告诉您发生了什么(NullPointerException)和 其中(NullPointerExample.java的第21行)。看那条线,看 如果您能识别上面给出的两种模式之一。问问你自己 这些问题:
为什么会发生NullPointerException? NullPointerException是由尝试取消引用 不指向任何东西的指针;指针为空。这是 可以找到NullPointerException的两种常见场景:
String myString=null代码>
System.out.println(myString.length())代码>
System.out.println(amethodthattreturnsnall().toString())代码>
private StringBuilder puzzle;
Puzzle(String theSolution) {
// create a buffer where all non space are turned into -
puzzle = new StringBuilder(theSolution.replaceAll("\\S", "-"));
}