2016-06-22 1 views
1

Я практиковал связанный список на Java. Таким образом, я сделал три узла и дал им дорожат 1,2 и 3. Когда я запускаю код, который я хочу, выходПечать с неправильным выходом в java

1 2 3 

Но код дает выход

333435 

Я проверил код, и это кажется правильным. Я не знаю, почему код производит неожиданный вывод. Кто-нибудь может мне помочь, пожалуйста.

Заранее спасибо.

class LinkedList{ 
    Node head; 

    static class Node 
    { 
      int data; 
      Node next; 
      Node(int d){ 
       data = d; 
       next = null; 
      } 
    } 
    public void printList(){ 
     Node n = head; 
     while (n != null){ 
      System.out.print(n.data + ' '); 
      n = n.next; 
     } 
    } 
    public static void main(String[] args) 
    { 
     LinkedList llist = new LinkedList(); 

     llist.head = new Node(1); 
     Node second= new Node(2); 
     Node third = new Node(3); 

     llist.head.next = second; 
     second.next = third; 

     llist.printList(); 
    } 
} 
+1

Do System.out.print (n.data + ""); вместо System.out.print (n.data + ''); –

ответ

3

Ваш код верный, но p РОБЛЕМА вы столкнулись с ложью в

System.out.print(n.data + ' '); 

вместо делать

System.out.print(n.data + " ");

Сначала вы должны знать: -

одиночные кавычки используются для символов и двойные кавычки используются для строк.

Когда вы

n.data + ' ' 

Он преобразует '' в его ASCII-значение и добавляет его в n.data. ASCII-символ пространства 32.So, ваш выход становится

1: +32 == 33

2 + 32 = 34

2 + 33 = 35

Следовательно,

и не будет места, поскольку пространство преобразуется в значение ASCII Аналогичные коды будут использоваться uce же выходы.

Например: -

System.out.print (n.data + '*');

+0

Спасибо, что сделали мой день. Я узнал от вас все новое. – shahrukh

1

В вашем перечне печати() метод, у вас есть:

// this converts the space char to an int and adds it the data. 
System.out.print(n.data + ' '); 

Изменить это:

// this will print the data and concatenate a space after it 
System.out.print(n.data + " "); 

Примечания: Пространство символ в ASCII является 32 в десятичной системе, и это почему вы получали 33, 34 и 35