代码:

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]);
}
}
}

运行:

Java中nextInt和nextLine同时使用出现的问题-LMLPHP

问题:输入n的值为5,但是只能输入4个字符串!

原因:nextInt()只读取数值,剩下"\n"还没有读取 , nextLine()会读取"\n",并结束。

  输入5的时候,nextInt()只读取了5,未读取后面的"\n",这导致5后面的"\n"被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后面的 "\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同时使用出现的问题-LMLPHP

05-23 22:53