我想编写一个Java代码,以便对于任何以“Foo”开头的单词,做一些事情,对于以“Bar”开头的所有单词做其他事情。
for(String str: stringList) {
switch (str) {
case Foo*: // do something. then break.
case Bar*: // do something else. break.
}
}
现在,我如何在java中进行正则表达式匹配?
答案 0 :(得分:4)
Switch语句需要字符串文字,目前不接受正则表达式模式。但是,只需使用if
和else
:
for (String str: stringList) {
if (str.matches("Foo.*")) {
// do something
}
else if (str.matches("Bar.*")) {
// do something else. break.
}
}
我们可以使用String#startsWith
或子字符串,但我使用matches
来说明可以使用正则表达式模式。
答案 1 :(得分:1)
您无法使用switch语句执行此操作。使用if-else-if代替:
for(String str: stringList) {
if(str.startsWith("Foo")){
// do something
} else if(str.startsWith("Bar")){
// do something
}
}