2013-04-18 77 views
0

所以我试图创建一个链接的字符列表,首先我要指出,我们不允许在java中使用内置的链接列表方法。当我添加字符,然后尝试显示它们时,它只是给了我一个数字列表。这是为什么发生?显示为数字的链接列表

class Node{ 
     int data; 
     Node next; 
     public Node(Character x){ 
      data = x; next = null; 
     } 
     public Node next(){return next;} 
     public void setNext(Node p){ 
      next = p; 
     } 
     public void set(Character x){data = x;} 
     public int data(){return data;} 
    } 



    class Reader{ 
      Node head = null;//empty list 
      public void add(Character x){ //add at head 
       Node nw = new Node(x); 
       nw.setNext(head); 
       head = nw; 
      } 
      public void display(){ 
       Node k = head; 
       System.out.print('['); 
       while(k!=null){ 
        if(k.next!=null) 
         System.out.print(k.data()+","); 
        else 
         System.out.print(k.data()); 
        k=k.next(); 
       } 
       System.out.print(']'); 

      } 



     } 

    class assignment9{ 

     public static void main(String[]args){ 

      Reader r1 = new Reader(); 
      r1.add('r'); 
      r1.add('e'); 
      r1.add('l'); 
      r1.add('l'); 
      r1.add('o'); 
      r1.display(); 


     } 
    } 

回答

0

只投给char

System.out.print((char)k.data()+",");

System.out.print((char)k.data());

,你有可以使用int在这里,但最好是使用最适当的类型中的每个变量你的情况char

+0

谢谢!正如你所说,我已经把int类型改为了char,这是最好的方法。 – Strobes

1

在你的Node内部,如果你希望它表示为char,那么不要将数据存储为int。 int是一个数字类型,char是一个字符类型。

0

你在打电话给data()打印出整数。如果您希望将此表示为字符,请确保数据的类型为字符。