Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扫描器询问更多预期的字符串_Java_Java.util.scanner - Fatal编程技术网

Java 扫描器询问更多预期的字符串

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

我正在尝试使用扫描仪将字符串输入。 但它要求我提供更多预期的字符串:使用此代码不应该要求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.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.do
int 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已经进行读取。