例如:输入n个带空格的字符串
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String []s = new String [n]; // 定义字符串数组
for(int i=0;i<n;i++)
{
s[i] = in.nextLine(); // 按行读取
}
for(String a:s)
{
System.out.println(a);
}
输入:3
ABC
DEF
GHI
输出:
ABC
DEF
上面的代码是无法读入3个想要输入的字符串的,当读到第2个时就已经结束。(因为在循环里字符串数组是读入了一个换行符的,所以在例子中申请的三个字符串空间是提前读完了的而无法输入第三个想要输入的字符串)
解决方案:
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String[] s = new String[n];
in.nextLine(); //在这里单独写一句读取语句用于读取吸收换行符
for (int i = 0; i < n; i++)
{
s[i] = in.nextLine();
}
for(String a:s)
{
System.out.println(a);
}
输入:3
ABC
DEF
GHI
输出:
ABC
DEF
GHI