检查输入是否为一个字母(Java)

检查输入是否为一个字母(Java),java,Java,在我的程序中,我得到一个用户输入(字符串): 例: 我想检查(使用if函数)用户/字符串是否具有以下内容: 包含一个字母(a-z/a-z) 仅包含一个字母(A有效,AA/AB/LWA无效) 那么x/x2上发生了什么 if(input.equals(x) && input.equals(x2){ //... } 使用regex应完成以下工作: Scanner scanner = new Scanner(System.in); String input

在我的程序中,我得到一个用户输入(字符串):

例:

我想检查(使用if函数)用户/字符串是否具有以下内容:

  • 包含一个字母(a-z/a-z)
  • 仅包含一个字母(A有效,AA/AB/LWA无效)
那么x/x2上发生了什么

if(input.equals(x) && input.equals(x2){
    //...
} 

使用
regex
应完成以下工作:

    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();

    if (input.matches("[A-z]")) {
        System.out.println("Valid input");
    } 
    else {
        System.out.println("Wrong input");
    }

使用
regex
应完成以下工作:

    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();

    if (input.matches("[A-z]")) {
        System.out.println("Valid input");
    } 
    else {
        System.out.println("Wrong input");
    }

您可以使用一个简单的正则表达式:

String input = in.nextline():
if (input.matches("[A-Za-z]{1}")) {
    //valid input
}
else {
    //invalid input
}

您可以使用一个简单的正则表达式:

String input = in.nextline():
if (input.matches("[A-Za-z]{1}")) {
    //valid input
}
else {
    //invalid input
}

不涉及正则表达式(因此更容易理解)的解决方案是:

  • 使用检查字符串的长度是否为1
  • 使用并对字符的ASCII值进行整数比较,检查第一个字符是否在
    'a'
    'z'
    之间或
    'a'
    'z'
    之间。这也可以通过将字符小写并检查它是否仅在
    'a'
    'z'
    之间来简化
示例代码为:

private static boolean isValid(String str) {
    if (str.length() != 1) return false;
    char c = Character.toLowerCase(str.charAt(0));
    return c >= 'a' && c <= 'z';
}

不涉及正则表达式(因此更容易理解)的解决方案是:

  • 使用检查字符串的长度是否为1
  • 使用并对字符的ASCII值进行整数比较,检查第一个字符是否在
    'a'
    'z'
    之间或
    'a'
    'z'
    之间。这也可以通过将字符小写并检查它是否仅在
    'a'
    'z'
    之间来简化
示例代码为:

private static boolean isValid(String str) {
    if (str.length() != 1) return false;
    char c = Character.toLowerCase(str.charAt(0));
    return c >= 'a' && c <= 'z';
}

你真的是一个
if(input.equals(x)&&input.equals(x2){…}
解决方案吗?为什么?你试过什么?我不是高级java程序员。我只想要两个输出。一个是如果sring只包含一个字母,另一个是不包含。我只是不知道如何检查输入是否是一个字母,以及是否只有一个字母/你真的是
if(input.equals)吗(x) &&input.equals(x2){…}
解决方案?为什么?你试过什么?我不是高级java程序员。我只想要两个输出。一个是如果sring只包含一个字母,另一个是不包含。我只是不知道如何检查输入是否是一个字母,以及是否只有一个字母/
a-z
?为什么你假设
a
z
之后?'[a-z]'包含所有大写字母和小写字母-一旦没有,它就没有。在
Z
a
之间还有几个字符。谷歌ascii。你说得对,我会给你这个…谢谢你的评论-但是如果你想的话,它仍然会起作用:“如何检查输入是否是一个字母而只有一个字母”如果输入是
\uu
,您的代码将写入
有效输入
。这在imo中不起作用。
A-z
?为什么假设
A
z
之后?'[A-z]'包含所有大写字母和小写字母-一旦没有,它就没有。在
Z
a
之间还有几个字符。谷歌ascii。你说得对,我会给你这个…谢谢你的评论-但是如果你想的话,它仍然会起作用:“如何检查输入是否是一个字母而只有一个字母”如果输入是
,您的代码将写入
有效输入。