代码:
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()只读取数值,剩下"\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]); } } }