如何修改我的代码只接受某种数据类型?

时间:2017-09-29 08:34:09

标签: java

我可以做些什么来修改它,是否有任何java函数? 需要做什么才能接受字符并返回其他数据类型的错误消息?

import java.util.*;
    public class problem5
    {
      public static void main(String[] args)
      {
        Scanner in = new Scanner(System.in);
        System.out.print("Enter a letter from the alphabet: ");
        char letter = in.next(".").charAt(0);
        char vowels[] = {'A','E','I','O','U','a','e','i','o','u'};
        int vowelcount = 0;
        for (int i = 0; i < 10; i++)
        {
          if (vowels[i] == letter)
          {
            vowelcount++;
          }
        }
        if (vowelcount > 0)
        {
          System.out.println("You entered a vowel.");
        }
        else
        {
          System.out.println("You entered a consonant.");
        }
      }
    }

2 个答案:

答案 0 :(得分:1)

  

我需要拒绝超过1个字符的输入 - Nico Dela Cruz

您只需要检查输入的长度

String input = in.next(".");
if(input.length == 1){
    char letter = input.charAt(0);
    ...
}

如果要添加某种错误消息,请添加else

要检查输入是否只接受letter,您需要Character.isLetter(char)检查UNICODE中的每个“字母”。

如果您只想接受一系列a-z和/或A-Z,您可以使用if条件或使用正则表达式自行完成。

答案 1 :(得分:0)

将循环包装在如下语句中:

if (Character.isLetter(letter)){

并在最后输入else子句以表示错误

编辑:

OP稍微改变了他们的问题,所以你可以:

- 仅接受输入的第一个字符:

char letter = in.next().trim().charAt(0);

- 或者正如AxelH上面所述,只有在用户输入一个字符时才会继续:

if(input.length == 1){
    char letter = input.charAt(0);