当前位置: 首页 > 知识库问答 >
问题:

无法使其接受“字母”输入

羊舌兴德
2023-03-14
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个答案

单于山
2023-03-14

因为您正在读取一个字符,所以您应该使用字符类型。此外,您需要读取下一个字符,而不是下一个int。.next()将读取下一个字符串,然后charat(0)只获取第一个字符。

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

如果希望不区分大小写:

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

您还可以通过使用逻辑“或”而不是单独的if来减少代码的重复

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 (user_input) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        System.out.println("Vowel");
        break;
    default:
        System.out.println("Consonant");
        break;
}
 类似资料:
  • 代码可以很好地删除数字,但我不知道该使用什么regex,所以它也可以替换标点符号(例如`,!,],[等等) 有人能帮帮我吗?

  • 我有一个网站,我想运行购物车功能的完整过程。一切顺利,直到我点击付款方式,选择借记卡和。在将数据放入字段时,它不接受。如何将数据放入字段中。以下是测试网站的链接:https://vapesuite.allomate.solutions/#/.下面是将数据输入字段的代码。

  • 我正在尝试编写这个程序,这样当用户输入一行文本时,他们就会得到一个图表,显示每个字母被使用了多少次。我把它分解成一个数组,但我总是得到一个错误:“counts[letters[a]=='a']++;”也就是说我不能将字符串转换为char,也不能将boolean转换为int,这取决于我把它放进去的方式。我不明白为什么不全是带电。

  • 问题内容: 我希望用户仅输入字母或空格(如果用户输入其他字符),我想给jOptionPane消息,我已经搜索过,并且尝试了以下代码 但是现在无论我输入什么都会给出错误 现在我更改了代码 现在它仅在用户输入数字时发出消息。我该如何解决 问题答案: 使用一个,这是我制作的一个示例,它将仅接受字母字符和空格:

  • 我在firefox和internet Explorer中的有一些问题。在firefox和IE中键入字符将是数字,但文本也可以键入。在Chrome中工作完美。是否可以不使用进行修复。提前致谢

  • 问题内容: 我的项目中有一个EditText字段,该字段代表该人的全名,因此我只允许在其中包含字母和空格,因此我在文件中尝试了以下内容 但这没有用,有人可以告诉我怎么做吗? 问题答案: 试试这个: