J'utilise la méthode de fractionnement String et je souhaite avoir le dernier élément. La taille du tableau peut changer.
Exemple:
String one = "Düsseldorf - Zentrum - Günnewig Uebachs"
String two = "Düsseldorf - Madison"
Je veux diviser les chaînes ci-dessus et obtenir le dernier élément:
lastone = one.split("-")[here the last item] // <- how?
lasttwo = two.split("-")[here the last item] // <- how?
Je ne connais pas les tailles des tableaux au moment de l'exécution :(
Réponses:
Enregistrez le tableau dans une variable locale et utilisez le
length
champ du tableau pour trouver sa longueur. Soustrayez-en un pour tenir compte du fait qu'il est basé sur 0:Caveat emptor: si la chaîne d'origine est composée uniquement du séparateur, par exemple
"-"
ou"---"
,bits.length
sera 0 et cela lancera une ArrayIndexOutOfBoundsException. Exemple: https://onlinegdb.com/r1M-TJkZ8la source
"-"
ou"---"
,bits.length
sera 0 et cela lèvera une ArrayIndexOutOfBoundsException. Exemple: onlinegdb.com/r1M-TJkZ8Ou vous pouvez utiliser la
lastIndexOf()
méthode sur Stringla source
IndexOutOfBoundsException
sistring
ne contient pas'-'
?IndexOutOfBoundsException
ifstring
contient'-'
à la dernière positionVous pouvez utiliser la classe StringUtils dans Apache Commons:
la source
en utilisant une méthode d'assistance simple mais générique comme celle-ci:
vous pouvez réécrire:
comme:
la source
first()
etnth(T[array], int n)
est bien fait à partir de cela.A maintenant
lastString
la valeur"directory"
la source
Avec la goyave :
Splitter
,Iterables
la source
Rassemblé toutes les manières possibles ensemble !!
En utilisant
lastIndexOf()
&substring()
méthodes deJava.lang.String
split()
Java SE 1.4 . Divise le texte fourni en un tableau.Java 8 flux ordonné séquentiel à partir d'un tableau.
Apache Commons Lang jar «
org.apache.commons.lang3.StringUtils
Guava
: Bibliothèques Google Core pour Java. «Com.google.common.base.SplitterScript pour la plate-forme Java «Exécutez Javascript sur la JVM avec Rhino / Nashorn
Rhino «Rhino est une implémentation open-source de JavaScript entièrement écrite en Java. Il est généralement intégré aux applications Java pour fournir des scripts aux utilisateurs finaux. Il est intégré dans J2SE 6 en tant que moteur de script Java par défaut.
Nashorn est un moteur JavaScript développé dans le langage de programmation Java par Oracle. Il est basé sur la Da Vinci Machine et a été publié avec Java 8.
Guide du programmeur Java Scripting
Fichier JavaScript «
StringSplit.js
la source
Basic
(il y a un espace à la fin), vous obtiendrezBasic
le dernier élément.Puisqu'il demandait de tout faire dans la même ligne en utilisant split, je suggère donc ceci:
J'évite toujours de définir de nouvelles variables dans la mesure du possible, et je trouve que c'est une très bonne pratique
la source
IndexOutOfBoundsException
chaîne si ne contient pas-
Vous voulez dire que vous ne connaissez pas la taille des tableaux au moment de la compilation? Au moment de l'exécution, ils pouvaient être trouvés par la valeur de
lastone.length
etlastwo.length
.la source
En java 8
la source
Je suppose que vous voulez faire cela en ligne. C'est possible (un peu de jonglerie quand même = ^)
tadaa, une ligne -> le résultat que vous voulez (si vous divisez sur "-" (espace moins espace) au lieu de seulement "-" (moins) vous perdrez aussi l'espace ennuyeux avant la partition = ^) donc "Günnewig Uebachs" au lieu de "Günnewig Uebachs" (avec un espace comme premier caractère)
Bien plus -> pas besoin de fichiers JAR supplémentaires dans le dossier lib pour que vous puissiez garder votre application légère.
la source
Vous pouvez également utiliser
java.util.ArrayDeque
la source