当我运行上面的代码时, 它跳过第一个输入字符串并且没有输入字符串,它打印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());
}
}
}
答案 0 :(得分:0)
这是因为在nextXXX()之后直接使用nextLine()(XXX是Int,Float Double等中的任何一个)会产生问题。 在这种情况下,nextXXX不解析\ n和nextLine()只读取由nextXXX()留下的\ n。 要解决这个问题,你可以在nextInt()下面使用额外的nextLine(),你的代码就可以了。