我想在名为lastTestText
的字符串中搜索2或3个关键短语,我想返回Boolean
。它适用于:
Boolean tooLong = lastTestText.contains("hour") | lastTestText.contains("min");
但如果我有4或5个短语,这会有点啰嗦,所以我想知道是否有更优雅的方式来做这个?
答案 0 :(得分:2)
您可以使用正则表达式:
lastTestText.matches(".*(?>hour|min|second).*");
你甚至可以使用这样的表达式检查复数:".*(?>hour(?>s)?|min(?>s)?|second(?>s)?).*"
,它将匹配hour, hours, min, mins, second, seconds
。
但请注意,它也会匹配milliseconds
,因为它包含seconds
。在这种情况下,表达式会变得更复杂,因为您需要使用单词边界:
".*\\b(?>hour(?>s)?|min(?>s)?|second(?>s)?)\\b.*"
答案 1 :(得分:1)
数组怎么样:
String[] substrs = {...};
bool found = false;
for(String s : substrs) {
if(lastTestText.contains(s)) {
found = true;
break;
}
}
答案 2 :(得分:0)
您可以尝试使用令牌,或将值放在常量中,甚至尝试两者。