Respuestas:
Podrías usar fácilmente String.replace()
:
String helloWorld = "Hello World!";
String hellWrld = helloWorld.replace("o","");
Echa un vistazo a Apache StringUtils :
static String replace(String text, String searchString, String replacement)
Reemplaza todas las ocurrencias de una Cadena dentro de otra Cadena.static String replace(String text, String searchString, String replacement, int max)
Reemplaza una cadena por otra cadena dentro de una cadena más grande, para los primeros valores máximos de la cadena de búsqueda.static String replaceChars(String str, char searchChar, char replaceChar)
Reemplaza todas las ocurrencias de un personaje en una Cadena por otra.static String replaceChars(String str, String searchChars, String replaceChars)
Reemplaza varios caracteres en una cadena de una vez.static String replaceEach(String text, String[] searchList, String[] replacementList)
Reemplaza todas las apariciones de cadenas dentro de otra cadena.static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
Reemplaza todas las apariciones de cadenas dentro de otra cadena.static String replaceOnce(String text, String searchString, String replacement)
Reemplaza una Cadena con otra Cadena dentro de una Cadena más grande, una vez.static String replacePattern(String source, String regex, String replacement)
Reemplaza cada subcadena de la Cadena de origen que coincide con la expresión regular dada con el reemplazo dado usando la opción Pattern.DOTALL.
replace('regex', 'replacement');
replaceAll('regex', 'replacement');
En tu ejemplo
String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");
Debería tener en cuenta StringBuilder/StringBuffer
cuáles le permiten eliminar, insertar, reemplazar caracteres en el desplazamiento especificado .
También puede usar la función CharMatcher.removeFrom de guayaba .
Ejemplo:
String s = CharMatcher.is('a').removeFrom("bazaar");
Puede usar Substring también para reemplazar con una cadena existente:
var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);
Aquí está la implementación para eliminar todas las subcadenas de la cadena dada
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);
}
La implementación del método isSubstring () está aquí
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));
}
En caso de que tenga alguna lógica complicada para filtrar el carácter, solo otra forma en lugar de replace()
.