【发布时间】:2011-11-11 00:41:49
【问题描述】:
void menu() {
print();
Scanner input = new Scanner( System.in );
while(true) {
String s = input.next();
switch (s) {
case "m": print(); continue;
case "s": stat(); break;
case "[A-Z]{1}[a-z]{2}\\d{1,}": filminfo( s ); break;
case "Jur1": filminfo(s); break; //For debugging - this worked fine
case "q": ; return;
}
}
}
似乎我的正则表达式已关闭,或者我没有在案例陈述中正确使用它。我想要的是一个字符串: 以一个大写字母开头,后跟两个小写字母,后跟至少一个数字。
我检查了正则表达式 API 并尝试了三种变体(贪婪、不情愿和所有格量词),但不知道它们的正确用途。还检查了 String 的方法,但没有找到与我的需求相关的方法。
【问题讨论】:
-
这是 Java 7 中的新功能吗?用正则表达式切换。在 Java 6 或更低版本中没有这样的东西。
-
6及以下甚至没有字符串开关(只有积分和枚举)
-
是的 - 我怀疑这违反了 switch 规则。那么,到好 'ol if/else if-statements then?
-
伙计,我喜欢这个网站!谢谢。
标签: java regex switch-statement