问大家一个很弱智的问题。。关于键盘输入的。

Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
String[] str=new String[n];
int i=0;
while(scanner.hasNext()){
str[i]=scanner.nextLine();
                                     i++; }
这里n是输入字符串的个数,按行读取字符串存到字符串数组中去,可是为什么我输入后str[0]总是读不到字符串呢??想了半天也想不出来
全部评论
谢谢大家明白了!
点赞 回复 分享
发布于 2017-09-01 21:13
楼主可以去研究一下不同的函数读入之后光标的位置,nextint读一个数字,光标还在本行,读nextline,光标会移动到下一行
点赞 回复 分享
发布于 2017-09-01 21:06
nextLine()是以Enter为结尾的。 nextInt()读取一个整数后,应该后接一个nextLine()来消除掉该行的Enter。 next()在前(包括nextInt()、nextFloat()等),nextLine()在后,都有这个问题。
点赞 回复 分享
发布于 2017-09-01 21:05
先调用了nextInt();再调用nextLine();会先把上一行的剩余部分输入,然后才开始新的一行。所以结果比你的输入多一行空白
点赞 回复 分享
发布于 2017-09-01 21:03
scanner.nextLine()方法,输入一行你按回车,其实str[0]读到的是空格符
点赞 回复 分享
发布于 2017-09-01 21:02
public class Demo { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); String[] str=new String[n]; int i=0; while (i<n){ str[i]=scanner.next(); i++; } System.out.println(str[0]); } }
点赞 回复 分享
发布于 2017-09-01 20:56
我也遇到过这个问题,我猜是不是scanner.nextInt只获取了输入的数字,而回车换行符被下一个scanner.nextLine给获取了,所以数组第一个为空
点赞 回复 分享
发布于 2017-09-01 20:55
循环之前加一句in.nextLine()读一下换行符
点赞 回复 分享
发布于 2017-09-01 20:53

相关推荐

评论
点赞
6
分享

创作者周榜

更多
牛客网
牛客企业服务