我可以做些什么来修改它,是否有任何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.");
}
}
}
答案 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);