我想做什么:
有相似问题的网站提供了正则表达式,模式和匹配器。我看过API,它让我很困惑......
这是我尝试过的。
public class restrictinput {
public static void main (String args [] ) {
Scanner sc = new Scanner (in);
System.out.println ("Enter blah ");
String blah = sc.nextLine();
Pattern userInput = Pattern.compile("^[a-zA-Z]+$");
Matcher inputCheck = userInput.matcher("blah");
}
}
这编译,但我不确定这是否是正确/最好的方法。但是,如果我输入不同的字符类型,它只执行剩下的代码。
如果收到正确的字符类型,我该如何才能执行它?我应该使用什么来使用户知道错误?
如果给出的代码有误,我该怎么做才能改变它?
答案 0 :(得分:2)
这似乎是家庭作业,所以我不想放弃太多,但你想要查看if statement以及while或for循环。如果满足某些条件,这将有条件地执行代码。
答案 1 :(得分:1)
好的,所以你需要解决一些问题。我注意到的第一件事是你想要
userInput.matcher(blah);
不
userInput.matcher("blah");
因为您匹配字符串,而不仅仅是"blah"
现在提出大部分问题。您需要的第一件事是查看Matcher对象。具体来看看Matcher.find()。
第二件事是你需要为代码添加某种条件循环,以便它不断要求输入。也许是这样的:
bool result = true;
do {
String blah = sc.nextLine();
Pattern userInput = Pattern.compile("^[a-zA-Z]+$");
Matcher inputCheck = userInput.matcher("blah");
result = //boolean check from your matcher object
if(result) {
//Complain about wrong input
}
} while(result);