Risposte:
Puoi facilmente usare String.replace()
:
String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");
Dai un'occhiata a Apache StringUtils :
static String replace(String text, String searchString, String replacement)
Sostituisce tutte le occorrenze di una stringa all'interno di un'altra stringa.static String replace(String text, String searchString, String replacement, int max)
Sostituisce una stringa con un'altra stringa all'interno di una stringa più grande, per i primi valori massimi della stringa di ricerca.static String replaceChars(String str, char searchChar, char replaceChar)
Sostituisce tutte le occorrenze di un personaggio in una stringa con un'altra.static String replaceChars(String str, String searchChars, String replaceChars)
Sostituisce più caratteri in una stringa in una volta sola.static String replaceEach(String text, String[] searchList, String[] replacementList)
Sostituisce tutte le occorrenze di stringhe all'interno di un'altra stringa.static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Sostituisce tutte le occorrenze di stringhe all'interno di un'altra stringa.static String replaceOnce(String text, String searchString, String replacement)
Sostituisce una stringa con un'altra stringa all'interno di una stringa più grande, una volta.static String replacePattern(String source, String regex, String replacement)
Sostituisce ogni sottostringa della stringa di origine che corrisponde all'espressione regolare fornita con la sostituzione fornita utilizzando l'opzione Pattern.DOTALL.
replace('regex', 'replacement');
replaceAll('regex', 'replacement');
Nel tuo esempio,
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");
Puoi anche usare la funzione CharMatcher.removeFrom di guava .
Esempio:
String s = CharMatcher.is('a').removeFrom("bazaar");
È possibile utilizzare Sottostringa anche per la sostituzione con stringa esistente:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);
Ecco l'implementazione per eliminare tutte le sottostringhe dalla stringa specificata
public static String deleteAll(String str, String pattern)
{
for(int index = isSubstring(str, pattern); index != -1; index = isSubstring(str, pattern))
str = deleteSubstring(str, pattern, index);
return str;
}
public static String deleteSubstring(String str, String pattern, int index)
{
int start_index = index;
int end_index = start_index + pattern.length() - 1;
int dest_index = 0;
char[] result = new char[str.length()];
for(int i = 0; i< str.length() - 1; i++)
if(i < start_index || i > end_index)
result[dest_index++] = str.charAt(i);
return new String(result, 0, dest_index + 1);
}
L'implementazione del metodo isSubstring () è qui
private static void replaceChar() {
String str = "hello world";
final String[] res = Arrays.stream(str.split(""))
.filter(s -> !s.equalsIgnoreCase("o"))
.toArray(String[]::new);
System.out.println(String.join("", res));
}
Nel caso in cui tu abbia una logica complicata per filtrare il carattere, solo un altro modo invece di replace()
.