Come posso rimuovere la intera parolaon
(non il sottostringaon
nel Confirmed
) dal seguente stringa?Rimuovere intera parola solo con Java
X-JP409 Confirmed on 13/2/12
Come posso rimuovere la intera parolaon
(non il sottostringaon
nel Confirmed
) dal seguente stringa?Rimuovere intera parola solo con Java
X-JP409 Confirmed on 13/2/12
"X-JP409 Confirmed on 13/2/12".replace(" on ", " ");
Il secondo argomento di replace() dovrebbe essere "", non solo "", perché renderà le due parole "Confirmed" e "13/2/12" a una parola. –
@ChandraSekhar Buon punto! – adarshr
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. –
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
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".
Non funziona, è 'replace()' o 'replaceAll()'? –
+1 per usare l'asserzione corretta per questa attività, lascerò spazi bianchi superflui nella stringa, ma per gestirli correttamente alcuni casi sarebbero necessari. – stema
@ 101010 [Documentazione stringa] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html) – stema
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.
Grazie, mi hai salvato la giornata! – GingerHead
Sei il ragazzo più figo di sempre! – GingerHead
Se sarà sempre quel formato, sostituisce '" on "' con '" "'? – Amber