Respostas:
Você pode facilmente usar String.replace()
:
String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");
Confira o Apache StringUtils :
static String replace(String text, String searchString, String replacement)
Substitui todas as ocorrências de uma String dentro de outra String.static String replace(String text, String searchString, String replacement, int max)
Substitui uma String por outra String dentro de uma String maior, pelos primeiros valores máximos da String de pesquisa.static String replaceChars(String str, char searchChar, char replaceChar)
Substitui todas as ocorrências de um caractere em uma String por outra.static String replaceChars(String str, String searchChars, String replaceChars)
Substitui vários caracteres em uma String de uma só vez.static String replaceEach(String text, String[] searchList, String[] replacementList)
Substitui todas as ocorrências de Strings dentro de outra String.static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Substitui todas as ocorrências de Strings dentro de outra String.static String replaceOnce(String text, String searchString, String replacement)
Substitui uma String por outra String dentro de uma String maior, uma vez.static String replacePattern(String source, String regex, String replacement)
Substitui cada substring da String de origem que corresponde à expressão regular especificada pela substituição especificada usando a opção Pattern.DOTALL.
replace('regex', 'replacement');
replaceAll('regex', 'replacement');
No seu exemplo,
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");
Você deve examinar StringBuilder/StringBuffer
quais permitem excluir, inserir, substituir caracteres no deslocamento especificado .
Você também pode usar a função CharMatcher.removeFrom da goiaba .
Exemplo:
String s = CharMatcher.is('a').removeFrom("bazaar");
Você pode usar Substring também para substituir por uma string existente:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);
Aqui está a implementação para excluir todas as substrings da string especificada
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);
}
A implementação do método isSubstring () está aqui
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));
}
Caso você tenha alguma lógica complicada para filtrar o caractere, apenas outra maneira em vez de replace()
.