无法让它接受“字母”输入

时间:2015-02-12 18:14:09

标签: java

原谅我,我是编程的新手,但是我非常享受到目前为止所学到的知识。所以我的问题是;我正在尝试编写一个程序,提示用户输入一个字母,然后返回该字母是元音还是辅音。问题是我无法接受字母输入。如果被强制转换为" user_input =''"'。但不是一种选择。我知道我错过了一些简单的事情。

public static void main(String[] args)
{
    Scanner in = new Scanner(System.in);
    int user_input;

    System.out.print("Enter a letter: ");
    user_input = in.nextInt();//<--line of error

    if (user_input == 'a')
    {
        System.out.println("Vowel");
    }
    else if (user_input =='e')
    {
        System.out.println("Vowel");
    }
    else if (user_input =='i')
    {
        System.out.println("Vowel");
    }
    else if (user_input =='o')
    {
        System.out.println("Vowel");
    }
    else if (user_input =='u')
    {
        System.out.println("Vowel");
    }
    else
    {
        System.out.println("Consonant");
    }
}

提前感谢您的时间。

1 个答案:

答案 0 :(得分:3)

由于您正在阅读某个角色,因此您应该使用该角色类型。另外,你想要读下一个字符,而不是下一个字符。 .next()将读取下一个字符串,然后charAt(0)只获取第一个字符。

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

如果你想不区分大小写:

char user_input = in.next().toLowerCase().charAt(0); 

您还可以通过使用逻辑&#34;或&#34;来减少代码的重复。而不是单独的if s

if (user_input == 'a'
 || user_input =='e'
 || user_input =='i'
 || user_input =='o'
 || user_input =='u')
{
    System.out.println("Vowel");
}
else
{
    System.out.println("Consonant");
}

但是,您可能更喜欢switch语法方法

switch (user_input) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        System.out.println("Vowel");
        break;
    default:
        System.out.println("Consonant");
        break;
}
相关问题