Последняя подстрока строки - PullRequest
3 голосов
/ 05 мая 2010

В Java у нас есть indexOf и lastIndexOf. Есть что-нибудь вроде lastSubstring? Это должно работать как:

"aaple".lastSubstring(0, 1) = "e";

Ответы [ 7 ]

11 голосов
/ 05 мая 2010

Не в стандартном Java API, но ...

Apache Commons имеет множество удобных вспомогательных методов String в StringUtils

... в том числе StringUtils.right ( "яблоко", 1)

http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html#right(java.lang.String,%20int)

просто возьмите копию commons-lang.jar с commons.apache.org

3 голосов
/ 05 мая 2010

Обобщая другие ответы, вы можете реализовать lastSubstring следующим образом:

s.substring(s.length()-endIndex,s.length()-beginIndex);
2 голосов
/ 05 мая 2010

Возможно lasIndexOf (String) ?

0 голосов
/ 11 июня 2014

Для тех, кто хочет получить подстроку после некоторого конечного разделителя, например парсинг file.txt из /some/directory/structure/file.txt

Я нашел это полезным: StringUtils.substringAfterLast

public static String substringAfterLast(String str,
                                        String separator)
Gets the substring after the last occurrence of a separator. The separator is not returned.
A null string input will return null. An empty ("") string input will return the empty string. An empty or null separator will return the empty string if the input string is not null.
If nothing is found, the empty string is returned.
       StringUtils.substringAfterLast(null, *)      = null
       StringUtils.substringAfterLast("", *)        = ""
       StringUtils.substringAfterLast(*, "")        = ""
       StringUtils.substringAfterLast(*, null)      = ""
       StringUtils.substringAfterLast("abc", "a")   = "bc"
       StringUtils.substringAfterLast("abcba", "b") = "a"
       StringUtils.substringAfterLast("abc", "c")   = ""
       StringUtils.substringAfterLast("a", "a")     = ""
       StringUtils.substringAfterLast("a", "z")     = ""
0 голосов
/ 05 мая 2010

Я не знаю такого рода аналога substring(), но это не совсем необходимо. Вы не можете эффективно найти последний индекс с данным значением, используя indexOf(), поэтому необходимо lastIndexOf(). Чтобы получить то, что вы пытаетесь сделать с lastSubstring(), вы можете эффективно использовать substring().

String str = "aaple";
str.substring(str.length() - 2, str.length() - 1).equals("e");

Итак, на самом деле нет необходимости в lastSubstring().

0 голосов
/ 05 мая 2010

Вы можете использовать String.length () и String.length () - 1

0 голосов
/ 05 мая 2010

Разве это не будет просто

String string = "aaple";
string.subString(string.length() - 1, string.length());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...