Answers:
您的意思是:
if (newStr4.startsWith("Mon") || newStr4.startsWith("Tues") || ...)
或者您可以使用正则表达式:
if (newStr4.matches("(Mon|Tues|Wed|Thurs|Fri).*"))
Stream
到目前为止,还没有人提到,所以这里是:
if (Stream.of("Mon", "Tues", "Wed", "Thurs", "Fri").anyMatch(s -> newStr4.startsWith(s)))
s -> newStr4.startsWith(s)
可以替换newStr7::startsWith
为更清晰
一个简单的解决方案是:
if (newStr4.startsWith("Mon") || newStr4.startsWith("Tue") || newStr4.startsWith("Wed"))
// ... you get the idea ...
更好的解决方案是:
List<String> days = Arrays.asList("SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT");
String day = newStr4.substring(0, 3).toUpperCase();
if (days.contains(day)) {
// ...
}
if(newStr4.startsWith("Mon") || newStr4.startsWith("Tues") || newStr4.startsWith("Weds") .. etc)
您需要str.startsWith(otherStr)
为每个项目都包括整个内容,因为它||
仅适用于布尔表达式(true或false)。
如果要检查的东西很多,还有其他选项,例如正则表达式,但是它们往往比较慢,并且更难于阅读正则表达式。
用于检测日期名称缩写的正则表达式示例为:
if(Pattern.matches("Mon|Tues|Wed|Thurs|Fri", stringToCheck)) {
"Mon||Tues"
?还是您使用过newStr4.startsWith("Mon")||newStr4.startsWith("Tues") ...
?无论哪种方式,请定义“无效”。