java中使用nextline出现的问题

在Scanner类中有nextInt、nextDouble、nextfloat等这种扫描输入区中输入的数字
还有nextLint、next、扫面输入区中输入的字符串字符

初学Java,遇到了这样的问题,调用了nextInt()方法,接着直接调用了nextLine()方法,控制台输出错误,将接下来的两行输出语句直接书输出

PostGraduate Pg = new PostGraduate();
		Pg.set姓名();
		Pg.set学号();
		Pg.set导师姓名();
		Pg.set研究方向();


public void set学号() {
		System.out.print("请输入学号:");
		this.学号 = sender.nextInt();
	}


public void set导师姓名() {
		System.out.print("请输入导师姓名:");
		this.导师姓名 = sender.nextLine();
		
	}

这是三个方法在执行完输入学号之后,控制台直接输出

在这里插入图片描述

经过擦资料与询问,终于知道,nextInt只将缓存区中的数字提取并执行响应的赋值操作,但是不会将用户输入的回车取出,也就是当程序执行到set导师姓名的时候,缓冲区的回车赋值给了对应的变量,因此并不会让用户输入而是直接执行下一个方法;
解决办法:

public void set导师姓名() {
		System.out.print("请输入导师姓名:");
		sender.nextLine();
		this.导师姓名 = sender.nextLine();
		
	}

1.先扫描一遍输入区然后正式输入;
2.改用next当作输入接口;

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值