Java中nextInt和nextLine同时使用出现的问题
Posted yunn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中nextInt和nextLine同时使用出现的问题相关的知识,希望对你有一定的参考价值。
代码:
package com.ins1; import java.util.*; public class test { public static void main(String[] args){ Scanner input = new Scanner(System.in); int n=input.nextInt(); String[] str = new String[n]; for(int i=0;i<n;i++){ str[i]=input.nextLine(); } for (int i=0;i<str.length;i++) { System.out.println(str[i]); } } }
运行:
问题:输入n的值为5,但是只能输入4个字符串!
原因:nextInt()只读取数值,剩下" "还没有读取 , nextLine()会读取" ",并结束。
输入5的时候,nextInt()只读取了5,未读取后面的" ",这导致5后面的" "被nextLine()读取,所以就只能输入4个字符串了。
解决办法:在nextInt()之后额外加上input.nextLine();
解决之后:
package com.ins1; import java.util.*; public class test { public static void main(String[] args){ Scanner input = new Scanner(System.in); int n=input.nextInt(); input.nextLine(); //消除n后面的 " " String[] str = new String[n]; for(int i=0;i<n;i++){ str[i]=input.nextLine(); } for (int i=0;i<str.length;i++) { System.out.println(str[i]); } } }
以上是关于Java中nextInt和nextLine同时使用出现的问题的主要内容,如果未能解决你的问题,请参考以下文章
JavaScanner类nextInt后使用nextLine无法读取输入
Java中nextLine()与其他next(),nextInt(),nextFloat()的区别
Java中Scanner类在nextInt()后无法输入nextLine()的问题
我在Scanner.nextInt()之后输入一个Scanner.nextLine()来使用新行,但它不能正常工作[重复]