Używam metody typu String split i chcę mieć ostatni element. Rozmiar tablicy może się zmienić.
Przykład:
String one = "Düsseldorf - Zentrum - Günnewig Uebachs"
String two = "Düsseldorf - Madison"
Chcę podzielić powyższe ciągi i uzyskać ostatni element:
lastone = one.split("-")[here the last item] // <- how?
lasttwo = two.split("-")[here the last item] // <- how?
Nie znam rozmiarów tablic w czasie wykonywania :(
Odpowiedzi:
Zapisz tablicę w zmiennej lokalnej i użyj pola tablicy,
length
aby znaleźć jej długość. Odejmij jeden, aby uwzględnić, że jest oparty na 0:Caveat emptor: jeśli oryginalny ciąg składa się tylko z separatora, na przykład
"-"
or"---"
,bits.length
będzie wynosił 0, co spowoduje zgłoszenie wyjątku ArrayIndexOutOfBoundsException. Przykład: https://onlinegdb.com/r1M-TJkZ8źródło
"-"
lub"---"
,bits.length
będzie wynosił 0, co spowoduje zgłoszenie wyjątku ArrayIndexOutOfBoundsException. Przykład: onlinegdb.com/r1M-TJkZ8Lub możesz użyć
lastIndexOf()
metody na Stringźródło
IndexOutOfBoundsException
jeślistring
nie zawiera'-'
?IndexOutOfBoundsException
ifstring
zawiera'-'
na ostatniej pozycjiMożesz użyć klasy StringUtils w Apache Commons:
źródło
używając prostej, ale ogólnej metody pomocniczej, takiej jak ta:
możesz przepisać:
tak jak:
źródło
first()
inth(T[array], int n)
jest ładnie wykonany z tego.Teraz
lastString
ma wartość"directory"
źródło
Z guawą :
Splitter
,Iterables
źródło
Zebraliśmy wszystkie możliwe sposoby razem !!
Używając
lastIndexOf()
&substring()
metodJava.lang.String
split()
Java SE 1.4 . Dzieli podany tekst na tablicę.Sekwencyjny strumień Java 8 z tablicy.
Jar Apache Commons Lang «
org.apache.commons.lang3.StringUtils
Guava
: Biblioteki podstawowe Google dla języka Java. «Com.google.common.base.SplitterSkrypty dla platformy Java «Uruchom Javascript na JVM z Rhino / Nashorn
Rhino «Rhino to implementacja JavaScript napisana w całości w Javie. Zwykle jest osadzony w aplikacjach Java, aby zapewnić użytkownikom końcowym skrypty. Jest osadzony w J2SE 6 jako domyślny silnik skryptów Java.
Nashorn to silnik JavaScript opracowany w języku programowania Java przez Oracle. Jest oparty na maszynie Da Vinci i został wydany z Javą 8.
Podręcznik programisty skryptów Java
Plik JavaScript «
StringSplit.js
źródło
Basic
(jest spacja na końcu), otrzymaszBasic
jako ostatni element.Ponieważ prosił, aby zrobić to wszystko w tej samej linii, używając podziału, sugeruję to:
Zawsze unikam definiowania nowych zmiennych, o ile potrafię, i uważam to za bardzo dobrą praktykę
źródło
IndexOutOfBoundsException
że ciąg jeśli nie zawiera-
Masz na myśli, że nie znasz rozmiarów tablic w czasie kompilacji? W czasie wykonywania można je znaleźć na podstawie wartości
lastone.length
ilastwo.length
.źródło
W Javie 8
źródło
Chyba chcesz to zrobić w pierwszej kolejności. Jest to możliwe (choć trochę żonglerki = ^)
tadaa, jedna linia -> żądany wynik (jeśli podzielisz na "-" (spacja minus spacja) zamiast tylko "-" (minus) stracisz irytującą spację przed partycją = ^), więc "Günnewig Uebachs" zamiast „Günnewig Uebachs” (ze spacją jako pierwszym znakiem)
Niezły dodatek -> nie ma potrzeby umieszczania dodatkowych plików JAR w folderze lib, dzięki czemu aplikacja jest lekka.
źródło
Możesz również użyć
java.util.ArrayDeque
źródło