让java检查输入的行,看看是否只有字母。

让java检查输入的行,看看是否只有字母。,java,Java,我对Java非常陌生,一直在尝试编写一些代码,以便它检查接收到的输入仅为字母,这样就不能输入特殊字符或数字 到目前为止,我已经走到了这一步 System.out.println("Please enter your first name"); while (!scanner.hasNext("a-z") { System.out.println("This is not in letters only"); scanner.nextLine();

我对Java非常陌生,一直在尝试编写一些代码,以便它检查接收到的输入仅为字母,这样就不能输入特殊字符或数字

到目前为止,我已经走到了这一步

    System.out.println("Please enter your first name");
    while (!scanner.hasNext("a-z")
    {
    System.out.println("This is not in letters only");
    scanner.nextLine();
    }
    String firstname = scanner.nextLine();
       int a = firstname.charAt(0);
这显然不起作用,因为它只是定义输入只能包含字符a-z,我希望能找到一种方法告诉它只能包含字母,但还不能确定如何使用

任何帮助都将不胜感激,哪怕是一个链接,我可以阅读正确的命令并自己解决:)


谢谢你可以用一个简单的正则表达式

System.out.println("Please enter your first name");
String firstname = scanner.nextLine(); // Read the first name 
while (!firstname.matches("[a-zA-Z]+")) { // Check if it has anything other than alphabets
    System.out.println("This is not in letters only");
    firstname = scanner.nextLine(); // if not, ask the user to enter new first name
}
int a = firstname.charAt(0); // once done, use this as you wish
while(scanner.hasNext()){
字符串字=scanner.next();
for(int i=0;i
您可以使用以下任一选项:

public boolean isAlpha(String name) {
    char[] chars = name.toCharArray();

    for (char c : chars) {
        if(!Character.isLetter(c)) {
            return false;
        }
    }

    return true;
}


看看
Character.isleter()
method非常感谢:)此刻,我感觉自己在试图用一种新的语言表达自己,我知道我想说什么,但找不到合适的词:)谢谢你的回答:)谢谢你的回答:)
public boolean isAlpha(String name) {
    char[] chars = name.toCharArray();

    for (char c : chars) {
        if(!Character.isLetter(c)) {
            return false;
        }
    }

    return true;
}
public boolean isAlpha(String name) {
    return name.matches("[a-zA-Z]+");
}