【发布时间】:2015-01-27 21:28:18
【问题描述】:
我试图在我的一种方法中创建一个用户输入验证系统......它在一定程度上可以正常工作,但尽管有代码,它仍然允许整数作为有效输入,我不希望它是,我如何更改此代码,仅允许字母(字符串)作为有效输入。在这一点上我很困惑,我用整数尝试了这个系统,它可以完美地工作,但是用字母,无济于事。
洞察力?
public class Player {
private static String userName;
private Scanner scan = new Scanner(System.in);
private boolean validInput = false;
public void createUser(){
do {
System.out.println("Please enter you name : ");
if(scan.hasNextLine()){
userName = scan.nextLine();
validInput = true;
} else {
System.out.println("You can only use letters!");
validInput = false;
scan.next();
}
} while (!(validInput));
System.out.println(getUser());
}
static void setUser(String userName){
Player.userName = userName;
}
String getUser(){
return userName;
}
}
【问题讨论】:
-
您在哪里检查用户输入的是字母而不是数字?
-
你考虑过正则表达式吗?
-
是的,我希望他们只使用字母
-
dmitry,你是什么意思?
-
我的意思是 Java 提供的 API 来检查字符串内容 (docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html) 并且您可以指定的规则非常广泛 - 包括没有任何数字符号。也许这就是你需要的。
标签: java validation input