Estou usando o método de divisão String e quero ter o último elemento. O tamanho da matriz pode mudar.
Exemplo:
String one = "Düsseldorf - Zentrum - Günnewig Uebachs"
String two = "Düsseldorf - Madison"
Quero dividir as Strings acima e obter o último item:
lastone = one.split("-")[here the last item] // <- how?
lasttwo = two.split("-")[here the last item] // <- how?
Não sei os tamanhos das matrizes em tempo de execução :(
Respostas:
Salve a matriz em uma variável local e use o
length
campo da matriz para encontrar seu comprimento. Subtraia um para explicar que é baseado em 0:Advertência emptor: se a string original for composta apenas pelo separador, por exemplo
"-"
ou"---"
,bits.length
será 0 e isso gerará uma ArrayIndexOutOfBoundsException. Exemplo: https://onlinegdb.com/r1M-TJkZ8fonte
"-"
ou"---"
,bits.length
será 0 e isso gerará uma ArrayIndexOutOfBoundsException. Exemplo: onlinegdb.com/r1M-TJkZ8Ou você pode usar o
lastIndexOf()
método em Stringfonte
IndexOutOfBoundsException
ifstring
não contém'-'
?IndexOutOfBoundsException
sestring
contém'-'
na última posiçãoVocê pode usar a classe StringUtils no Apache Commons:
fonte
usando um método auxiliar simples, mas genérico, como este:
você pode reescrever:
Como:
fonte
first()
enth(T[array], int n)
é muito bem feito com isso.Agora
lastString
tem o valor"directory"
fonte
Com goiaba :
Splitter
,Iterables
fonte
Reuniram todas as formas possíveis juntos !!
Usando
lastIndexOf()
&substring()
métodos deJava.lang.String
split()
Java SE 1.4 . Divide o texto fornecido em uma matriz.Fluxo ordenado sequencial do Java 8 a partir de uma matriz.
Frasco Apache Commons Lang «
org.apache.commons.lang3.StringUtils
Guava
: Bibliotecas do Google Core para Java. «Com.google.common.base.SplitterScript para a plataforma Java «Execute Javascript na JVM com Rhino / Nashorn
Rhino «Rhino é uma implementação de código-fonte aberto do JavaScript, escrita inteiramente em Java. Normalmente, ele é incorporado aos aplicativos Java para fornecer scripts aos usuários finais. Ele está incorporado no J2SE 6 como o mecanismo de script Java padrão.
Nashorn é um mecanismo JavaScript desenvolvido na linguagem de programação Java da Oracle. É baseado na máquina Da Vinci e foi lançado com o Java 8.
Guia do Programador de Scripts Java
Arquivo JavaScript «
StringSplit.js
fonte
Basic
(existe um espaço à direita), você obteráBasic
o último elemento.Como ele estava pedindo para fazer tudo na mesma linha usando split, sugiro o seguinte:
Sempre evito definir novas variáveis o máximo possível e acho uma prática muito boa
fonte
IndexOutOfBoundsException
Caso cadeia não contém-
Quer dizer que você não sabe o tamanho das matrizes em tempo de compilação? No tempo de execução, eles podem ser encontrados pelo valor de
lastone.length
elastwo.length
.fonte
Em java 8
fonte
Eu acho que você quer fazer isso na minha linha. É possível (um pouco de malabarismo embora = ^)
tadaa, uma linha -> o resultado que você deseja (se você dividir em "-" (espaço menos espaço) em vez de apenas "-" (menos), você perderá o espaço irritante antes da partição também = ^) para "Günnewig Uebachs" em vez de "Günnewig Uebachs" (com um espaço como primeiro personagem)
Bom extra -> não há necessidade de arquivos JAR extras na pasta lib para que você possa manter o peso leve do seu aplicativo.
fonte
Você também pode usar
java.util.ArrayDeque
fonte