2013-04-18 2 views
0

그래서 링크 된 문자 목록을 만들려고합니다. 먼저 자바에서 링크 된 목록에 대해 내장 된 메서드를 사용할 수 없다는 것을 지적 할 것입니다. 문자를 추가하고 표시하려고하면 숫자 목록 만 표시됩니다. 왜 이런 일이 일어나는 걸까요?링크 된 문자 목록을 숫자로 표시

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

은 그냥 당신이 가지고있는 당신은 여기 int을 사용할 수 있습니다

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

char

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

캐스팅 합니다만, 각각의 변수에 가장 적합한 유형을 사용하는 것이 가장 좋습니다 귀하의 사례 char

+0

감사합니다! 나는 당신이 말한 것처럼 int 타입을 char로 변경했다. 이것이 가장 좋은 방법이다. – Strobes

1

노드 내부에서 char로 표시하려면 데이터를 int로 저장하지 마십시오. int는 수치 형, char는 문자 형입니다.

0

귀하는 data() 호출에서 int를 인쇄하고 있습니다. 이를 Character로 표현하려면 데이터 유형이 Character인지 확인하십시오.

관련 문제