代码:

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

 

 

posted on 2020-06-30 11:34  A_yun  阅读(458)  评论(0编辑  收藏  举报