2012-05-31 4 views
33

В моем приложении я добавляю строку для создания пути для создания URL-адреса. Теперь я хочу удалить эту добавленную строку при нажатии кнопки «Назад».Удалить строку после последнего появления символа

Пусть это строка:

/String1/String2/String3/String4/String5 

Теперь я хочу строку, как это:

/String1/String2/String3/String4/ 

Как я могу это сделать?

+0

возможно дубликат [Как получить строку после последней запятой в Java] (http://stackoverflow.com/questions/9515505/how-to-get-the -string-после последнего-запятая-в-Java) – Barett

+0

я ответил на вопрос .. над [здесь] [1] это простой способ .. [1]: HTTP: // StackOverflow .com/questions/1181969/java-get-last-element-after-split/23075419 # 23075419 – Nepster

ответ

51

Вы можете использовать lastIndexOf() метод же с

if (null != str && str.length() > 0) 
{ 
    int endIndex = str.lastIndexOf("/"); 
    if (endIndex != -1) 
    { 
     String newstr = str.substring(0, endIndex); // not forgot to put check if(endIndex != -1) 
    } 
} 
+0

Да Я получаю индекс последнего вхождения «/», но как удалить строку после этого символа? ? –

+1

str.subString (0, endIndex); –

+0

не забыл поставить чек if (endIndex! = -1) –

33
String whatyouaresearching = myString.substring(0, myString.lastIndexOf("/")) 
+4

«подстрока», а не подстрока() :) – codevscolor

+0

@rsan: Спасибо !!! Отличный ответ .. – Shesha

+1

@rsan Отличный ответ, так как строка whatyouaresearching включает в себя последний «/», это будет больше похоже на: «String whatyouaresearching = myString.substring (0, myString.lastIndexOf («/») + 1)' –

3

Самый простой способ ...

 String path = "http://zareahmer.com/questions/anystring"; 

     int pos = path.lastIndexOf("/"); 

     String x =path.substring(pos+1 , path.length()-1); 

Теперь x имеет значение stringAfterlastOccurence

0

В третьей строке в ответ Nepster должен быть

String x =path.substring(pos+1 , path.length());

, а не так String x =path.substring(pos+1 , path.length()-1);substring() метод принимает конец + 1 смещение в качестве второго параметра.

+1

выглядит как ответ мне – Drew

2

Вы можете использовать apache.commons.lang.StringUtils.substringBeforeLast(str, separator), который является нулевым.

Из Javadoc:

StringUtils.substringBeforeLast(null, *)  = null 
StringUtils.substringBeforeLast("", *)  = "" 
StringUtils.substringBeforeLast("abcba", "b") = "abc" 
StringUtils.substringBeforeLast("abc", "c") = "ab" 
StringUtils.substringBeforeLast("a", "a")  = "" 
StringUtils.substringBeforeLast("a", "z")  = "a" 
StringUtils.substringBeforeLast("a", null) = "a" 
StringUtils.substringBeforeLast("a", "")  = "a" 
Смежные вопросы