为什么在上面的代码中它跳过n = 1的输入字符串

时间:2016-06-08 19:53:41

标签: java

当我运行上面的代码时, 它跳过第一个输入字符串并且没有输入字符串,它打印hs.size()并跳转到n = 2.但是从n = 2开始,代码运行得非常好。它接受输入字符串并添加哈希集

为什么它会跳过n = 1的输入字符串 请帮忙。

public class ch 
{
    public static void main(String[] args) 
    {
        HashSet hs=new HashSet();
        String s;
        Scanner console=new Scanner(System.in);
        int n=console.nextInt();

        for(int i=0;i<n;i++)
        {   
            s=console.nextLine();
            hs.add(s);
            System.out.println(hs.size());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这是因为在nextXXX()之后直接使用nextLine()(XXX是Int,Float Double等中的任何一个)会产生问题。 在这种情况下,nextXXX不解析\ n和nextLine()只读取由nextXXX()留下的\ n。 要解决这个问题,你可以在nextInt()下面使用额外的nextLine(),你的代码就可以了。