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

新手上路,请多包涵

我有以下 if 语句:

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

I want it to include startsWith Mon Tues Weds Thurs Friday etc. Is使用字符串时有一个简单的方法吗?我尝试了 || 但它没有用。

原文由 FredBones 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 558
2 个回答

你的意思是:

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

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

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

原文由 hmjd 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

更新:在某些时候引入 varargs 使调用变得更简单:

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

原文由 Thomas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题