Я использую метод разделения String, и я хочу иметь последний элемент. Размер массива может измениться.
Пример:
String one = "Düsseldorf - Zentrum - Günnewig Uebachs"
String two = "Düsseldorf - Madison"
Я хочу разделить вышеперечисленные строки и получить последний элемент:
lastone = one.split("-")[here the last item] // <- how?
lasttwo = two.split("-")[here the last item] // <- how?
Я не знаю размеры массивов во время выполнения :(
Ответы:
Сохраните массив в локальной переменной и используйте поле массива,
length
чтобы найти его длину. Вычтите одно, чтобы учесть, что оно основано на 0:Caveat emptor: если исходная строка состоит только из разделителя, например
"-"
или"---"
,bits.length
будет 0, и это вызовет исключение ArrayIndexOutOfBoundsException. Пример: https://onlinegdb.com/r1M-TJkZ8источник
"-"
или"---"
,bits.length
будет 0, и это вызовет исключение ArrayIndexOutOfBoundsException. Пример: onlinegdb.com/r1M-TJkZ8Или вы можете использовать
lastIndexOf()
метод на Stringисточник
IndexOutOfBoundsException
еслиstring
не содержит'-'
?IndexOutOfBoundsException
еслиstring
содержит'-'
в последней позицииВы можете использовать класс StringUtils в Apache Commons:
источник
используя простой, но универсальный вспомогательный метод, подобный этому:
Вы можете переписать:
так как:
источник
first()
иnth(T[array], int n)
хорошо сделано из этого.Теперь
lastString
имеет значение"directory"
источник
С гуавой :
Splitter
,Iterables
источник
Собрались все возможные пути вместе !!
Используя
lastIndexOf()
&substring()
методыJava.lang.String
split()
Java SE 1.4 . Разбивает предоставленный текст в массив.Java 8 последовательный упорядоченный поток из массива.
Apache Commons Lang jar «
org.apache.commons.lang3.StringUtils
Guava
: Основные библиотеки Google для Java. «Com.google.common.base.SplitterСоздание сценариев для платформы Java «Запустите Javascript на JVM с Rhino / Nashorn
Rhino «Rhino - это реализация JavaScript с открытым исходным кодом, полностью написанная на Java. Обычно он встроен в приложения Java для предоставления сценариев конечным пользователям. Он встроен в J2SE 6 в качестве механизма сценариев Java по умолчанию.
Nashorn - это движок JavaScript, разработанный Oracle на языке программирования Java. Он основан на машине Да Винчи и был выпущен с Java 8.
Руководство по программированию Java Scripting
Файл JavaScript «
StringSplit.js
источник
Basic
(есть завершающий пробел), вы получитеBasic
последний элемент.Так как он просил сделать все это в одной строке, используя split, я предлагаю следующее:
Я всегда избегаю определения новых переменных, насколько я могу, и я считаю, что это очень хорошая практика
источник
IndexOutOfBoundsException
если строка не содержит-
Вы имеете в виду, что не знаете размеры массивов во время компиляции? Во время выполнения они могут быть найдены по значению
lastone.length
иlastwo.length
.источник
В ява 8
источник
Я думаю, что вы хотите сделать это в строке. Это возможно (хотя немного жонглировать = ^)
Тадаа, одна строка -> желаемый результат (если вы разделите на «-» (пробел минус пробел) вместо только «-» (минус), вы потеряете раздражающее пространство перед разделом тоже = ^), так что «Günnewig Uebachs» вместо "Günnewig Uebachs" (с пробелом в качестве первого символа)
Приятное дополнение -> нет необходимости в дополнительных JAR-файлах в папке lib, чтобы вы могли сохранять легкость своего приложения.
источник
Также вы можете использовать
java.util.ArrayDeque
источник