Eu tenho a seguinte declaração if:
String newStr4 = strr.split("2012")[0];
if (newStr4.startsWith("Mon")) {
str4.add(newStr4);
}
Quero incluir startsWith
Mon
Tues
Weds
Thurs
Friday
etc. Existe uma maneira simples de fazer isso ao usar strings? Eu tentei, ||
mas não funcionou.
java
string
if-statement
FredBones
fonte
fonte
"Mon||Tues"
etc.? Ou você usounewStr4.startsWith("Mon")||newStr4.startsWith("Tues") ...
? De qualquer forma, defina "não funcionou".Respostas:
Você quer dizer isso:
Ou você pode usar uma expressão regular:
fonte
Além das soluções já apresentadas, você pode usar a biblioteca Apache Commons Lang:
Atualização: a introdução de varargs em algum ponto torna a chamada mais simples agora:
fonte
Ninguém foi mencionado
Stream
até agora, então aqui está:fonte
s -> newStr4.startsWith(s)
pode ser substituída pornewStr7::startsWith
to be clearUma solução simples é:
Uma solução mais sofisticada seria:
fonte
Claro, esteja ciente de que seu programa só será útil em países de língua inglesa se você detectar datas dessa forma. Você pode querer considerar:
A partir daí, você pode usar .startsWith ou .matches ou qualquer outro método que outros mencionaram acima. Desta forma, você obtém o local padrão para o jvm. Você sempre pode passar a localidade (e talvez padronizá-la para a localidade do sistema se for nula) também para ser mais robusto.
fonte
Você precisa incluir o todo
str.startsWith(otherStr)
para cada item, uma vez que||
só funciona com expressões booleanas (verdadeiro ou falso).Existem outras opções se você tiver muitas coisas para verificar, como expressões regulares , mas elas tendem a ser mais lentas e expressões regulares mais complicadas são geralmente mais difíceis de ler.
Um exemplo de expressão regular para detectar abreviações de nomes de dias seria:
fonte
Quando você diz que tentou usar OU, como exatamente tentou usá-lo? No seu caso, o que você precisa fazer é algo assim:
fonte