Ich verwende die String-Split-Methode und möchte das letzte Element haben. Die Größe des Arrays kann sich ändern.
Beispiel:
String one = "Düsseldorf - Zentrum - Günnewig Uebachs"
String two = "Düsseldorf - Madison"
Ich möchte die obigen Zeichenfolgen aufteilen und den letzten Artikel erhalten:
lastone = one.split("-")[here the last item] // <- how?
lasttwo = two.split("-")[here the last item] // <- how?
Ich kenne die Größe der Arrays zur Laufzeit nicht :(
Antworten:
Speichern Sie das Array in einer lokalen Variablen und verwenden Sie das Feld des Arrays
length
, um seine Länge zu ermitteln. Subtrahieren Sie eins, um zu berücksichtigen, dass es 0-basiert ist:Caveat emptor: wenn die ursprüngliche Zeichenfolge nur aus dem Separator besteht, zum Beispiel
"-"
oder"---"
,bits.length
wird 0 , und dies wird eine ArrayIndexOutOfBoundsException werfen. Beispiel: https://onlinegdb.com/r1M-TJkZ8quelle
"-"
oder"---"
,bits.length
0 sein , und dies wird eine ArrayIndexOutOfBoundsException werfen. Beispiel: onlinegdb.com/r1M-TJkZ8Oder Sie könnten die
lastIndexOf()
Methode für String verwendenquelle
IndexOutOfBoundsException
Wennstring
nicht enthalten'-'
?IndexOutOfBoundsException
ifstring
enthält'-'
an der letzten PositionSie können die StringUtils- Klasse in Apache Commons verwenden:
quelle
Verwenden einer einfachen, aber generischen Hilfsmethode wie dieser:
Sie können umschreiben:
wie:
quelle
first()
undnth(T[array], int n)
ist schön daraus gemacht.Jetzt
lastString
hat der Wert"directory"
quelle
Mit Guave :
Splitter
,Iterables
quelle
Sammelte alle möglichen Wege zusammen !!
Mit
lastIndexOf()
&substring()
Methoden vonJava.lang.String
split()
Java SE 1.4 . Teilt den bereitgestellten Text in ein Array auf.Java 8 sequentiell geordneter Stream von einem Array.
Apache Commons Lang jar «
org.apache.commons.lang3.StringUtils
Guava
: Google Core Libraries für Java. «Com.google.common.base.SplitterSkripterstellung für die Java-Plattform «Führen Sie Javascript auf der JVM mit Rhino / Nashorn aus
Rhino «Rhino ist eine Open-Source-Implementierung von JavaScript, die vollständig in Java geschrieben wurde. Es ist normalerweise in Java-Anwendungen eingebettet, um Endbenutzern Skripte bereitzustellen. Es ist in J2SE 6 als Standard-Java-Scripting-Engine eingebettet.
Nashorn ist eine JavaScript-Engine, die von Oracle in der Programmiersprache Java entwickelt wurde. Es basiert auf der Da Vinci-Maschine und wurde mit Java 8 veröffentlicht.
Java Scripting Programmer's Guide
JavaScript-Datei «
StringSplit.js
quelle
Basic
folgt durch Leerzeichen ("") teilen: (es gibt ein nachfolgendes Leerzeichen), erhalten SieBasic
als letztes Element.Da er darum gebeten hat, alles in derselben Zeile mit split zu machen, schlage ich Folgendes vor:
Ich vermeide es immer, neue Variablen zu definieren, so weit ich kann, und ich finde es eine sehr gute Praxis
quelle
IndexOutOfBoundsException
wenn Zeichenfolge nicht enthält-
Sie meinen, Sie kennen die Größe der Arrays zur Kompilierungszeit nicht? Zur Laufzeit konnten sie anhand des Werts von
lastone.length
und ermittelt werdenlastwo.length
.quelle
In Java 8
quelle
Ich denke du willst das in i line machen. Es ist möglich (ein bisschen Jonglieren = ^)
tadaa, eine Zeile -> das gewünschte Ergebnis (wenn Sie auf "-" (Leerzeichen minus Leerzeichen) anstatt nur "-" (Minus) teilen, verlieren Sie auch das nervige Leerzeichen vor der Partition = ^), also "Günnewig Uebachs" anstelle von "Günnewig Uebachs" (mit einem Leerzeichen als erstes Zeichen)
Nettes Extra -> Keine zusätzlichen JAR-Dateien im lib-Ordner erforderlich, damit Sie Ihre Anwendung leicht halten können.
quelle
Auch können Sie verwenden
java.util.ArrayDeque
quelle