Java 布尔值在这个程序中是如何工作的?

Java 布尔值在这个程序中是如何工作的?,java,java.util.scanner,Java,Java.util.scanner,有人能告诉我为什么会发生此错误以及如何更正它吗?caseArray有一百个元素,而您要对每个元素执行next(),即使要拆分的字符串中只有四个元素 由于temp字符串是硬编码的,因此不需要扫描仪。事实上,将其作为数组或列表来保存要简单得多: List cases=Arrays.asList(“yes”、“no”、“do”、“you”); found=cases.contains(inputInfo); 您是否缺少一些代码?这看起来不像是一个好主意。例如,您在哪里初始化inputInfo和foun

有人能告诉我为什么会发生此错误以及如何更正它吗?

caseArray
有一百个元素,而您要对每个元素执行
next()
,即使要拆分的字符串中只有四个元素

由于
temp
字符串是硬编码的,因此不需要扫描仪。事实上,将其作为数组或列表来保存要简单得多:

List cases=Arrays.asList(“yes”、“no”、“do”、“you”);
found=cases.contains(inputInfo);

您是否缺少一些代码?这看起来不像是一个好主意。例如,您在哪里初始化
inputInfo
found
?为什么在这里使用
Scanner
,而不是像
temp.split(“/”)
?@sleepToken我编辑了我的代码很抱歉that@Abion47我也可以用。那么错误呢?输入有4个值,数组有100个位置,循环100次,所以调用
next()
100次,您会感到困惑,在4个值用完后,它会与
NoTouchElementException
一起失败?我想使用Scanner类。为了理解目的,我举了一个例子。@SashrikR您想使用
扫描仪的原因是什么?
public class HelloWorld{

    public static void main(String [] args){

        boolean found = false;
        inputInfo = "do";

        String temp = "yes/no/do/you";
        Scanner scan = new Scanner(temp); // caseS scanner class

        scan.useDelimiter("/"); // Delimiter

        String[] caseArray = new String[100];

        while (scan.hasNext()) {

            for (int i = 0; i < caseArray.length; i++) {

                caseArray[i] = scan.next();

            }

            for(int j = 0; j< caseArray.length; j++) {

                if(caseArray[j].equals(inputInfo)) {

                     found = true;
                     break;
                }
            }

        if(found){

            System.out.print("product found");
        } else{

            System.out.print("product not found");
        }
    }
  }
}
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1371)