2012-05-31 13 views
33

En mi aplicación, agrego una cadena para crear una ruta para generar una URL. Ahora quiero quitar esa cadena adjunta al presionar el botón Atrás.Eliminar cadena después de la última aparición de un carácter

Supongamos que esta es la cadena:

/String1/String2/String3/String4/String5 

Ahora quiero una cadena como esta:

/String1/String2/String3/String4/ 

¿Cómo puedo hacer esto?

+0

posible duplicado de [? ¿Cómo obtener la cadena después de la última coma en java] (http://stackoverflow.com/questions/9515505/how-to-get-the -string-post-última-coma-en-java) – Barett

+0

he respondido a la pregunta sobre .. [aquí] [1] es una manera fácil .. [1]: http: // stackoverflow .com/questions/1181969/java-get-last-element-after-split/23075419 # 23075419 – Nepster

Respuesta

51

Puede utilizar lastIndexOf() método para la misma

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

Sí, estoy obteniendo el índice de la última aparición de "/", pero ¿cómo puedo eliminar una cadena después de ese carácter? ? –

+1

str.subString (0, endIndex); –

+0

no se olvidó de comprobar si if (endIndex! = -1) –

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

"substring", no subString() :) – codevscolor

+0

@rsan: ¡¡¡Gracias !!! Gran respuesta .. – Shesha

+1

@rsan Gran respuesta, ya que la cadena whatyouaresearching incluye el último "/" será más como: 'Cadena whatyouaresearching = myString.substring (0, myString.lastIndexOf ("/") + 1)' –

3

forma más fácil es ...

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

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

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

ahora x tiene el valor stringAfterlastOccurence

0

La tercera línea en la respuesta de Nepster debe ser

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

y no String x =path.substring(pos+1 , path.length()-1); desde substring() método toma el extremo + 1 compensar como el segundo parámetro.

+1

se ve como una respuesta para mí – Drew

2

Puede usar apache.commons.lang.StringUtils.substringBeforeLast(str, separator) que no es seguro.

Desde el 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" 
Cuestiones relacionadas