2012-02-16 11 views

risposta

3
"X-JP409 Confirmed on 13/2/12".replace(" on ", " "); 

String replace documentation

+0

Il secondo argomento di replace() dovrebbe essere "", non solo "", perché renderà le due parole "Confirmed" e "13/2/12" a una parola. –

+0

@ChandraSekhar Buon punto! – adarshr

+0

Questa risposta risponde tecnicamente alla domanda ma funziona solo quando la parola target si trova nel mezzo della frase. Le risposte seguenti (utilizzando replaceAll con RegEx) sono migliori in quanto entrambe rispondono alla domanda e in un modo più universale/educativo su come risolvere in generale le sfide di sostituzione delle parole. –

0

Che dire:

String str = "X-JP409 Confirmed on 13/2/12"; 
str.replaceAll(" on ", " "); 

L'uscita è quello che stai cercando:

X-JP409 Confirmed 13/2/12 
6

C'è speciale indicatore della parola nei regex: \b. Quindi il modo migliore è myString.replaceAll("\\bon\\b", "");

Questo funziona quando la parola 'on' è all'inizio, alla fine e nel mezzo del testo ma solo se è una parola separata. Ad esempio non rimuoverà "on" dalla parola "uno".

+1

Non funziona, è 'replace()' o 'replaceAll()'? –

+0

+1 per usare l'asserzione corretta per questa attività, lascerò spazi bianchi superflui nella stringa, ma per gestirli correttamente alcuni casi sarebbero necessari. – stema

+0

@ 101010 [Documentazione stringa] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html) – stema

5

Se si desidera sostituire tutti "on" che non sono in una parola, è possibile provare a far corrispondere anche il limite di parola \ b. Spero che sia d'aiuto.

String abc = "on X-JP409 Confirmed on 13/2/12 on"; 
    abc = abc.replaceAll("\\bon\\b", ""); 
    System.out.println(abc); 

o

String abc = "on X-JP409 Confirmed on 13/2/12 on"; 
    abc = Pattern.compile("\\bon\\b").matcher(abc).replaceAll(""); 

replaceAll è effettivamente invocano il Pattern api.

+0

Grazie, mi hai salvato la giornata! – GingerHead

+0

Sei il ragazzo più figo di sempre! – GingerHead

Problemi correlati