Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 如何在此代码中使用hasNext?_Java_Java.util.scanner - Fatal编程技术网

Java 如何在此代码中使用hasNext?

Java 如何在此代码中使用hasNext?,java,java.util.scanner,Java,Java.util.scanner,好的,所以问题是要写一个程序来识别元音和辅音。我需要使用Scanner和hasNext() 输出应该如下所示 输入一个字母:a a是元音 输入一个字母:b b是辅音 输入一个字母:1 1是无效输入 它将一直读取,直到到达文件末尾 教授暗示使用hasNext,因为当没有输入时,它将返回false 这就是我到目前为止的情况 Scanner input = new Scanner(System.in); System.out.print("Enter a letter: ");

好的,所以问题是要写一个程序来识别元音和辅音。我需要使用Scanner和hasNext()

输出应该如下所示

输入一个字母:a

a是元音

输入一个字母:b

b是辅音

输入一个字母:1

1是无效输入

它将一直读取,直到到达文件末尾 教授暗示使用
hasNext
,因为当没有输入时,它将返回false

这就是我到目前为止的情况

    Scanner input = new Scanner(System.in);

    System.out.print("Enter a letter: ");
    char letter = input.next().charAt(0);

        if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U'){
            System.out.println(letter + " is a vowel");
        }
        else if(Character.isLetter(letter)){
            System.out.println(letter + " is a consonant");
        }

        else {
            System.out.println(letter + " is an invalid input");

        }

我需要的是在输入任何输入后将其循环,它会再次要求它输入字母。使用has-Next继续循环,直到到达文件末尾。我想您没有听到或理解这个提示。您应该只使用
hasNext()
,它将确定是否还有(任何类型的)输入。判断字符是元音、辅音还是无效的逻辑是好的。您需要一个while循环,该循环使用
hasNext()
来确定何时到达文件末尾。

试试这个

Scanner input = new Scanner(System.in);
    char letter;
    System.out.print("Enter a letter: ");
    while(input.hasNext())
    {

       letter = input.next().charAt(0);

        if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U')
        {
            System.out.println(letter + " is a vowel");
        }
        else if(Character.isLetter(letter)){
            System.out.println(letter + " is a consonant");
        }

        else {
            System.out.println(letter + " is an invalid input");

        }

       System.out.print("Enter a letter: ");
    }

所以你需要做一些事情

  • 读取文件。因此,不是
    扫描仪输入=新扫描仪(System.in),您可以使用Scanner对象来读取文件,如下所示:

    Scanner input = new Scanner(new File("path\\to\\vowels.txt"));
    
    try {
        Scanner input = new Scanner(new File("C:\\Users\\Mike\\Desktop\\vowels.txt"));
    
        while (input.hasNext()) {
            char letter = input.next().charAt(0);
    
            if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U'){
                System.out.println(letter + " is a vowel");
            }
            else if(Character.isLetter(letter)){
                System.out.println(letter + " is a consonant");
            }
            else {
                System.out.println(letter + " is an invalid input");
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    
  • 循环该文件以测试每个输入。因此,使用
    while
    循环

  • 在这个循环中,出现了何时停止的条件。只要文件中有更多的输入,就会返回
    true
    ,因此条件是
    while(input.hasNext())
    。这就是如何使用
    hasNext()
    方法在有输入的情况下继续读取文件
  • 不要忘记,在读取文件时,必须将其包围在try-catch块中,以防找不到该文件或其他内容。您的代码可以如下所示:

    Scanner input = new Scanner(new File("path\\to\\vowels.txt"));
    
    try {
        Scanner input = new Scanner(new File("C:\\Users\\Mike\\Desktop\\vowels.txt"));
    
        while (input.hasNext()) {
            char letter = input.next().charAt(0);
    
            if (letter=='a'||letter=='A'||letter=='e'||letter=='E'||letter=='i'||letter=='I'||letter=='o'||letter=='O'||letter=='u'||letter=='U'){
                System.out.println(letter + " is a vowel");
            }
            else if(Character.isLetter(letter)){
                System.out.println(letter + " is a consonant");
            }
            else {
                System.out.println(letter + " is an invalid input");
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    您需要文件或系统输入吗?在英语中,y、r、l有时是元音。更重要的是,您将所有非英语字母和所有重音字母计算为辅音。在脚本中识别一种语言的元音和辅音是语言学的一部分,在软件库中没有得到很好的支持。如果你写这种逻辑,一定要包括“不知道”的情况,而不是由于未陈述的假设而产生错误的结果。我想这是唯一一个你可以利用性格的例子。伊斯兰特。非常感谢你!我想在每种情况下都插入第二个系统,但我也认为这很尴尬。我也是一个初学者,一开始我认为没有什么是尴尬的。Happy Codding我还是java的初学者,现在我明白了,谢谢你的帮助。如果这个答案很有用,请选择它作为已接受,以表明你觉得它很有用。