Ich habe die folgende if-Anweisung:
String newStr4 = strr.split("2012")[0];
if (newStr4.startsWith("Mon")) {
str4.add(newStr4);
}
Ich möchte, dass es startsWith
Mon
Tues
Weds
Thurs
Friday
usw. enthält . Gibt es eine einfache Möglichkeit, dies bei der Verwendung von Zeichenfolgen zu tun? Ich habe es versucht, ||
aber es hat nicht funktioniert.
java
string
if-statement
FredBones
quelle
quelle
"Mon||Tues"
usw.? Oder hast du benutztnewStr4.startsWith("Mon")||newStr4.startsWith("Tues") ...
? In beiden Fällen definieren Sie bitte "es hat nicht funktioniert".Antworten:
Meinst du das:
Oder Sie könnten einen regulären Ausdruck verwenden:
quelle
Neben den bereits vorgestellten Lösungen können Sie auch die Apache Commons Lang-Bibliothek verwenden:
Update: Die Einführung von varargs macht den Aufruf jetzt einfacher:
quelle
Bisher wurde niemand erwähnt
Stream
, also hier ist es:quelle
s -> newStr4.startsWith(s)
kann ersetzt werdennewStr7::startsWith
, um klarer zu seinEine einfache Lösung ist:
Eine schickere Lösung wäre:
quelle
Beachten Sie natürlich, dass Ihr Programm nur in englischsprachigen Ländern nützlich ist, wenn Sie Daten auf diese Weise ermitteln. Vielleicht möchten Sie Folgendes berücksichtigen:
Von dort aus können Sie .startsWith oder .matches oder eine andere Methode verwenden, die andere oben erwähnt haben. Auf diese Weise erhalten Sie das Standardgebietsschema für das JVM. Sie können das Gebietsschema jederzeit übergeben (und es möglicherweise standardmäßig an das Systemgebietsschema übergeben, wenn es null ist), um auch robuster zu sein.
quelle
Sie müssen das Ganze
str.startsWith(otherStr)
für jedes Element einschließen , da dies||
nur mit booleschen Ausdrücken (wahr oder falsch) funktioniert.Es gibt andere Optionen, wenn Sie viele Dinge überprüfen müssen, wie z. B. reguläre Ausdrücke . Diese sind jedoch tendenziell langsamer und kompliziertere reguläre Ausdrücke sind im Allgemeinen schwerer zu lesen.
Ein Beispiel für einen regulären Ausdruck zum Erkennen von Abkürzungen für Tagesnamen wäre:
quelle
Wenn Sie sagen, Sie haben versucht, OR zu verwenden, wie genau haben Sie versucht, es zu verwenden? In Ihrem Fall müssten Sie ungefähr so vorgehen:
quelle