java-链接列表中的NullPointerException查找字符 公共类LString{ char data;//存储在此节点中的字符 LString next;//链接到下一个LString节点 公共LString(char newdata){ 数据=新数据; } 公共LString(char newdata,LString newnext){ 数据=新数据; next=newnext; } 公共电话号码(){ } //创建列表的前端 环前; //创建列表的长度 整数长度; /*构造一个LString对象。LString对象将表示 与原始字符相同的字符列表。也就是说,新创建的LString是 原始参数的“副本”*/ 公共LString(原始字符串){ LString curr=前端; 对于(int i=0;i

java-链接列表中的NullPointerException查找字符 公共类LString{ char data;//存储在此节点中的字符 LString next;//链接到下一个LString节点 公共LString(char newdata){ 数据=新数据; } 公共LString(char newdata,LString newnext){ 数据=新数据; next=newnext; } 公共电话号码(){ } //创建列表的前端 环前; //创建列表的长度 整数长度; /*构造一个LString对象。LString对象将表示 与原始字符相同的字符列表。也就是说,新创建的LString是 原始参数的“副本”*/ 公共LString(原始字符串){ LString curr=前端; 对于(int i=0;i,java,nullpointerexception,linked-list,Java,Nullpointerexception,Linked List,下面的代码应该将字符串“hi”放入字符的链接列表中,其中hi的每个字母都是列表的一个节点。运行时,它给出一个nullpointerexception,指向curr.data=original.charAt(i);。为什么会出现空指针异常?感谢您在您的循环中: public class LString{ char data; //chars stored in this node LString next; //link to next LString node

下面的代码应该将字符串“hi”放入字符的链接列表中,其中hi的每个字母都是列表的一个节点。运行时,它给出一个nullpointerexception,指向curr.data=original.charAt(i);。为什么会出现空指针异常?感谢您在您的循环中:

public class LString{
   char data;      //chars stored in this node
   LString next;   //link to next LString node 

  public LString(char newdata){
     data = newdata;
  }

  public LString(char newdata, LString newnext){
     data = newdata;
     next = newnext;
  }

  public LString(){
  }

  //create a front of list
  LString front;

  //create length of list
  int length;

  /*Construct an LString object. The LString object will represent the
  same list of chars as original. That is, the newly created LString is a
  "copy" of the parameter original.*/

  public LString(String original){
     LString curr = front;
     for(int i = 0; i < original.length(); i++){
        curr.data = original.charAt(i);
        curr = curr.next;
        length++;
     }
  }
}

public class test{
     public static void main(String[] args){
        LString myList = new LString("hi");
     }
}

你有没有主驱动程序的例子,展示你是如何使用这个类的?我没有看到任何地方初始化
front
?但您将其分配给
LString curr
,因此它将为空。因此,将
LString-front
更改为
LString-front=new-LString()
public LString(String original){
 LString curr = front;
 for(int i = 0; i < original.length(); i++){
    curr.data = original.charAt(i);
    curr = curr.next;
    length++;
 }
public LString(String original){
  LString curr = null;

  for(int i = 0; i < original.length(); i++){
    char ch = original.charAt(i);

    if(i == 0){
        front = new LString(ch);
        curr = front;
    }
    else{
        curr.next = new LString(ch);
        curr = curr.next;
    }
    length++;
  }
}