2012-05-31 18 views
33

Nella mia applicazione, aggiungo una stringa per creare il percorso per generare un URL. Ora voglio rimuovere quella stringa aggiunta premendo il pulsante Indietro.Rimuovi stringa dopo l'ultima occorrenza di un carattere

Supponiamo questa è la stringa:

/String1/String2/String3/String4/String5 

Ora voglio una stringa come questa:

/String1/String2/String3/String4/ 

Come posso fare questo?

+0

possibile duplicato di [? Come ottenere la stringa dopo l'ultimo comma in java] (http://stackoverflow.com/questions/9515505/how-to-get-the -string-dopo-ultimo-comma-in-java) – Barett

+0

ho risposto alla domanda .. oltre [qui] [1] è un modo semplice .. [1]: http: // StackOverflow .com/questions/1181969/java-get-last-element-after-split/23075419 # 23075419 – Nepster

risposta

51

È possibile utilizzare lastIndexOf() metodo per lo stesso con

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ì Sto ricevendo l'indice dell'ultima occorrenza di "/", ma come rimuovere la stringa dopo quel carattere? ? –

+1

str.subString (0, endIndex); –

+0

non dimenticato di mettere controllare se (endIndex! = -1) –

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

"sottostringa", non subString() :) – codevscolor

+0

@rsan: Grazie !!! Ottima risposta .. – Shesha

+1

@rsan Ottima risposta, dal momento che la stringa whatyouaresearching include l'ultimo "/" sarà più simile a: 'String whatyouaresearching = myString.substring (0, myString.lastIndexOf ("/") + 1)' –

3

modo più semplice è ...

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

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

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

ora x ha il valore stringAfterlastOccurence

0

La terza riga risposta di Nepster dovrebbe essere

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

e non String x =path.substring(pos+1 , path.length()-1); dal substring() metodo prende fine + 1 Offset come secondo parametro.

+1

sguardi mi piace una risposta – Drew

2

È possibile utilizzare apache.commons.lang.StringUtils.substringBeforeLast(str, separator) che è sicuro.

Dal 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" 
Problemi correlati