Послушайте, я понимаю ценность поиска ответа перед тем, как задавать вопросы, но в том-то и дело, что этот вопрос значительно облегчил мой поиск ... именно то, что я хотел после первого попадания. Быстрее, чем консалтинг Javadocs. Хорошо, что этот вопрос здесь. Почему отрицательные?
Эрик
3
Хотя это несколько отличается от вашего первоначального вопроса: в вашем примере org.apache.commons.io.FilenameUtils.getBaseName гораздо надежнее, чем выполнение ваших собственных строковых операций.
До Schäfer
4
@Eric Я полностью согласен с вашим комментарием, так как это был первый результат Google по моему вопросу, и принятый ответ - именно то, что мне нужно было использовать.
Тоннор
Ответы:
314
String example ="/abc/def/ghfj.doc";System.out.println(example.substring(example.lastIndexOf("/")+1));
Наконец-то очень удобно, не знал об этом методе. Я ненавижу возиться с подстрокой + indexof + 1 - 2 +3 вообще. Это намного чище :)
BAERUS
Если вы хотите использовать этот метод на Android, вам нужно импортировать StringUtilsбиблиотеку, этот ответ показывает горячо, чтобы сделать это: stackoverflow.com/a/33935645/2966583
страмин
9
Вы можете использовать Apache Commons:
Для подстроки после последнего появления используйте этот метод.
А для подстроки после первого появления эквивалентный метод здесь .
Возвращает подстроку после последнего вхождения разделителя. Если строка не содержит разделитель, возвращает missingDelimiterValue, которое по умолчанию соответствует исходной строке.
этот код выдаст ошибку, если разделитель не найден.
Патрик Паркер
@PatrickParker Почему вы везде прокомментировали, что он выдаст ошибку, если разделитель не найден. Если вы делаете это в целях знания, чем все в порядке, но я просто думаю, что это может быть слишком много ...
Gaurav Mall
@GauravMall Я помогаю людям улучшить свои ответы, писать более качественный код и тем, кто посещает, помочь им избежать ловушек и улучшить понимание кода, прежде чем он вставит его куда-нибудь. Я с удовольствием удалю свой комментарий, как только ответ улучшится. Кроме того, писать это в двух местах вряд ли "везде". Наконец, раздел комментариев не предназначен для мета-обсуждения.
Ответы:
источник
Очень простая реализация с
String.split()
:источник
что ты пробовал? это очень просто:
источник
Другой способ - использовать это .
Если вы передадите null этому методу, он вернет null. Если нет совпадения с разделителем, он вернет пустую строку.
источник
StringUtils
библиотеку, этот ответ показывает горячо, чтобы сделать это: stackoverflow.com/a/33935645/2966583Вы можете использовать Apache Commons:
Для подстроки после последнего появления используйте этот метод.
А для подстроки после первого появления эквивалентный метод здесь .
источник
Это также может получить имя файла
Будет печатать
ghfj.doc
источник
С Guava сделать это:
В конечном итоге настроить
Splitter
и использоватьТакже ознакомьтесь с этой статьей о разделителе гуавы и этой статье об итерациях гуавы.
источник
В Kotlin вы можете использовать
substringAfterLast
, указав разделитель.Из документа :
источник
Я думаю, что было бы лучше, если бы мы использовали непосредственно функцию разделения
источник