java从Eclipse的Console中读取数据(尤其汉字)遇到的问题

      写了段简单代码,从控制台循环输入几个学生的个人信息(信息很简单,只包括学号、姓名和成绩),发现一个问题,在Eclipse这种集成开发环境中输入时,尤其需要输入汉字时,光标默认出现在一行的开头,要手工把光标移到“正确位置”;所谓正确位置,对于使用形如System.out.print("请输入姓名:");的语句,就把光标调到本行行尾也就是冒号之后,再输入汉字,对于使用形如System.out.println("请输入姓名:");的语句,就把光标调整到下一行的开头,再输入汉字,否则可能(毕竟真理是相对的,也可能是我操作不当,或者暂时懂得太少)会出现Eclipse的Console无法输入任何东西以及狂敲Enter也没反应的情况;输入数字及其他字符时,即便光标出现在一行的开始处,也可以直接进行输入。当在Windows的Dos中执行时,光标一定会严格出现在正确的位置,该出现在行尾的一定在行尾闪烁,该出现在下一行开头的一定在下一行开头闪烁,所以这种情况下要输入汉字、字符(串)和数字的直接输入即可。

     这是我练习java实现简单单向链表时遇到的问题,以下是代码,大家可以尝试,有问题可以交流,共同进步。

class Node
{
	int IDnumber;
	int score;
	String name;
	Node next;
	public Node(int IDnumber, String name, int score)
	{
		this.IDnumber = IDnumber;
		this.name = name;
		this.score = score;
		this.next = null;
	}
}
public class LinkedList {

	private Node first;
	private Node last;
	public boolean isEmpty()
	{
		return first == null;
	}
	public void print()
	{
		Node current = first;
		while(current != null)
		{
			System.out.println("["+current.IDnumber+" " + current.name+" "+current.score+"]");
			current = current.next;
		}
		System.out.println();
	}
	
	public void insert(int IDnumber,String name, int score)
	{
		Node newNode=new Node(IDnumber, name, score);
		if(this.isEmpty())
		{
			first = newNode;
			last=newNode;
		}
		else {
			last.next=newNode;
			last=newNode;
		}
	}
}


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class LinkedListTest {

    public static void main(String[] args) throws IOException
    {
    
        BufferedReader buf;
        buf=new BufferedReader(new InputStreamReader(System.in));
        int num;
        String name;
        int score;
        
        System.out.println("请输入2个学生数据: ");
        LinkedList linkedList = new LinkedList();
        for(int i=1; i<3; i++)
        {
            System.out.print("请输入学号:");
            num = Integer.parseInt(buf.readLine());
            System.out.print("请输入姓名:");
            name=buf.readLine();
            System.out.print("请输入成绩:");
            score=Integer.parseInt(buf.readLine());
            linkedList.insert(num, name, score);
            System.out.println("------------------");
        }
        
        System.out.println("单向链表是否为空:"+linkedList.isEmpty());
        System.out.println("学生成绩:");
        System.out.println("学号姓名成绩=============");
        linkedList.print();
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值