У меня есть следующий оператор if:
String newStr4 = strr.split("2012")[0];
if (newStr4.startsWith("Mon")) {
str4.add(newStr4);
}
Я хочу включить его startsWith
Mon
Tues
Weds
Thurs
Friday
и т. Д. Есть ли простой способ сделать это при использовании строк? Я пробовал, ||
но ничего не вышло.
java
string
if-statement
ФредБоунс
источник
источник
"Mon||Tues"
и т.д.? Или ты пользовалсяnewStr4.startsWith("Mon")||newStr4.startsWith("Tues") ...
? В любом случае дайте определение «это не сработало».Ответы:
Вы имеете в виду это:
Или вы можете использовать регулярное выражение:
источник
Помимо уже представленных решений, вы можете использовать библиотеку Apache Commons Lang:
Обновление: введение varargs в какой-то момент упрощает вызов:
источник
Пока никто не упомянул
Stream
, так что вот оно:источник
s -> newStr4.startsWith(s)
,newStr7::startsWith
дляПростое решение:
Более интересным решением будет:
источник
Конечно, помните, что ваша программа будет полезна только в англоязычных странах, если вы определите даты таким образом. Возможно, вы захотите рассмотреть:
Оттуда вы можете использовать .startsWith или .matches или любой другой метод, упомянутый выше. Таким образом вы получите локаль по умолчанию для jvm. Вы всегда можете передать языковой стандарт (и, возможно, по умолчанию использовать языковой стандарт системы, если он равен нулю), а также для большей надежности.
источник
Вам нужно включить все
str.startsWith(otherStr)
для каждого элемента, поскольку||
работает только с логическими выражениями (true или false).Есть и другие варианты, если вам нужно многое проверить, например регулярные выражения , но они, как правило, работают медленнее, а более сложные регулярные выражения обычно труднее читать.
Пример регулярного выражения для определения сокращений названий дней:
источник
Когда вы говорите, что пытались использовать ИЛИ, как именно вы пытались его использовать? В вашем случае вам нужно будет сделать что-то вроде этого:
источник