nextLine跳过输入的解决办法

在java中使用扫描器Scanner时,有一个很有趣的现象:

如果在nextline之前使用了next、nextInt等基本类型(companion)时,会出现不能输入的情况。

例如:

Scanner s = new Scanner(System.in);

String str = s.next();

System.out.println("空一行");

String str2 = s.nextLine();

System.out.println("再空一行");

结果:

原因:nextline是逐行输入,于是会自动读取  基本类型  省略掉的“enter”,于是结束读取

解决办法(根据具体情况使用):

方法1:nextLine用在最前

方法2:在nextLine前再建立一个不用的输入值,例如:

String str = s.nextInt();

String notuse = s.nextLine();

String str2 = s.nextLine();

方法3:使用next进行输入

String str = s.nextInt();

String notuse = s.next();

next()和nextLine()的区别:

next方法会忽略所有的空格、tab和回车,直到检测到字符才会开始进行输入,当出现空格、tab时,不会再输入(出现回车时会结束输入)。

nextLine方法会检测一行的输入进行操作,会将空格、tab一起录入。

所以在对空格和tab没有需求的时候,可以使用next方法进行输入。

String s1 = s.next();

System.out.println("空一行");

System.out.println(s1);

String notuse = s.nextLine();

String s2 = s.nextLine();

System.out.println(s2);

System.out.println("再空一行");

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一...
    阿里高级软件架构师阅读 3,399评论 0 19
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 2,087评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,230评论 0 41
  • 我希望在寂静的黑夜里没有太阳 我希望在晴朗的周末没有乌云 我希望天不会早些亮 我希望听见女儿的笑声还在成长 我希望...
    西域某乙阅读 130评论 0 1
  • 3月的最后一天,还是0 offer,当初的offer还要加s的话已成笑谈。打脸啪啪响。 昨夜老鼠看了群里我说过的话...
    Stupid_Sakuragi阅读 220评论 0 0

友情链接更多精彩内容