Java 扫描器询问更多预期的字符串
我正在尝试使用扫描仪将字符串输入。 但它要求我提供更多预期的字符串:使用此代码不应该要求5个字符串吗Java 扫描器询问更多预期的字符串,java,java.util.scanner,Java,Java.util.scanner,我正在尝试使用扫描仪将字符串输入。 但它要求我提供更多预期的字符串:使用此代码不应该要求5个字符串吗 public void go() { Scanner sc=new Scanner(System.in); ArrayList<String> list=new ArrayList<String>(); String temp=new String(); Integer i=new Integer(0); while(sc.hasN
public void go()
{
Scanner sc=new Scanner(System.in);
ArrayList<String> list=new ArrayList<String>();
String temp=new String();
Integer i=new Integer(0);
while(sc.hasNextLine() && i<5)
{
temp=sc.nextLine();
list.add(list.size(),temp);
i++;
}
}
public void go()
{
扫描仪sc=新的扫描仪(System.in);
ArrayList=新建ArrayList();
字符串温度=新字符串();
整数i=新整数(0);
而(sc.hasNextLine()&&i如果i==5
仍然调用sc.hasNextLine()
。修复:
while (i < 5 && sc.hasNextLine())
while(i<5&&sc.hasNextLine())
p.S.doint i=0;
如果i==5
仍然是一个sc.HasNextLine()
被调用。修复:
while (i < 5 && sc.hasNextLine())
while(i<5&&sc.hasNextLine())
注意:您对代码的执行有误解。
它要求您输入6个字符串,但将其中5个添加到列表中。
它要求您再输入一个字符串的原因是,sc.hasNextLine()
被执行,它的计算结果为true
,因此您可以看到控制台希望您输入一些内容,但随后循环条件的第二部分出现:i您对代码的执行有误解。
它要求您输入6个字符串,但将其中5个添加到列表中。
它要求您再输入一个字符串的原因是,sc.hasNextLine()
被执行,它的计算结果为true
,所以你看到控制台希望你输入一些东西,但是循环条件的第二部分出现了:这是解决方案,1+。更好的是:使用for循环。这就是他们的目的。这是解决方案,1+。更好的是:使用for循环。这就是他们的目的。@HoveRcraftFullOfels如果达到5,i<5将为false,调用sc.hasNextLine()之前的while循环结束。如果调用,则sc.hasNextLine已经进行读取。@HoverCraftFullOfels如果达到5,i<5将为false,调用sc.hasNextLine()之前的while循环结束。如果调用,则sc.hasNextLine已经进行读取。