如何使用hasNext这段代码?

时间:2014-09-01 03:38:00

标签: 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: ");
    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

3 个答案:

答案 0 :(得分:1)

我认为你没有听到或理解这个提示。您应该使用hasNext(),这将确定是否有任何输入(任何类型)。确定角色是元音,辅音还是无效的逻辑是好的。您需要一个使用hasNext()的while循环来确定何时到达文件结尾。

答案 1 :(得分:0)

试试这个。

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: ");
    }

答案 2 :(得分:0)

所以你需要做一些事情。

  1. 读取文件。因此,您可以使用Scanner对象代替Scanner input = new Scanner(System.in);来读取文件,如下所示:

    Scanner input = new Scanner(new File("path\\to\\vowels.txt"));
    
  2. 循环遍历该文件以测试每个输入。因此,请使用while循环。

  3. 在那个循环中,有什么时候停止的条件。好吧,只要文件中有更多输入,hasNext就会返回true,因此条件为while (input.hasNext())。这就是你在剩下输入时使用hasNext()方法继续读取文件的方法。
  4. 不要忘记,在阅读文件时,您必须将其包围在try-catch块中,以防万一找不到文件或其他内容。您的代码可能如下所示:

    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();
    }