在java中产生错误输出的打印
我在用Java练习链表。我做了三个节点,给它们取1,2和3。当我运行代码时,我需要输出在java中产生错误输出的打印,java,performance,data-structures,linked-list,nodes,Java,Performance,Data Structures,Linked List,Nodes,我在用Java练习链表。我做了三个节点,给它们取1,2和3。当我运行代码时,我需要输出 1 2 3 但是代码给出了输出 333435 我检查了代码,它似乎是正确的。我不知道为什么代码会产生意外的输出。谁能帮帮我吗 提前谢谢 class LinkedList{ Node head; static class Node { int data; Node next; Node(int d){
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();
}
}
在printList()方法中,您有:
// 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,这就是为什么在printList()方法中得到33、34和35,您有:
// 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您的代码是正确的,但您面临的问题在于
System.out.print(n.data + ' ');
取而代之的是
System.out.print(n.data+)代码>
首先,你应该知道:-
单引号用于字符,双引号用于字符串
当你这样做的时候
n.data + ' '
它将“”转换为其ASCII值,并将其添加到n.data中。
空格的ASCII字符是32。因此,您的输出变为
1+32==33
2+32=34
2+33=35
因此,
333435
没有空间,因为空间被转换成ASCII值
类似的类型代码将产生相同的输出
例如:-
系统输出打印(n.data+'*') 您的代码是正确的,但您面临的问题在于
System.out.print(n.data + ' ');
取而代之的是
System.out.print(n.data+)代码>
首先,你应该知道:-
单引号用于字符,双引号用于字符串
当你这样做的时候
n.data + ' '
它将“”转换为其ASCII值,并将其添加到n.data中。
空格的ASCII字符是32。因此,您的输出变为
1+32==33
2+32=34
2+33=35
因此,
333435
没有空间,因为空间被转换成ASCII值
类似的类型代码将产生相同的输出
例如:-
系统输出打印(n.data+'*') Do System.out.print(n.data+“”);而不是系统输出打印(n.data+“”);Do System.out.print(n.data+“”);而不是系统输出打印(n.data+“”);谢谢你让我开心。我从你的帖子中学到了一个全新的东西。谢谢你让我开心。我从你的帖子中学到了一个全新的东西。