如何检查字符串是否以几个前缀之一开头?

2022-08-31 09:08:24

我有以下if语句:

String newStr4 = strr.split("2012")[0];
if (newStr4.startsWith("Mon")) {
    str4.add(newStr4);
}

我希望它包括等。使用字符串时,有没有一种简单的方法可以做到这一点?我试过了,但它不起作用。startsWithMonTuesWedsThursFriday||


答案 1

你的意思是:

if (newStr4.startsWith("Mon") || newStr4.startsWith("Tues") || ...)

或者你可以使用正则表达式:

if (newStr4.matches("(Mon|Tues|Wed|Thurs|Fri).*"))

答案 2

除了已经提出的解决方案之外,您还可以使用Apache Commons Lang库:

if(StringUtils.startsWithAny(newStr4, new String[] {"Mon","Tues",...})) {
  //whatever
}

更新:在某个时候引入varargs使调用现在更简单:

StringUtils.startsWithAny(newStr4, "Mon", "Tues",...)