Eliminar ciertos caracteres de una string en Java
Esta publicación discutirá cómo eliminar ciertos caracteres de una string en Java.
1. Usando String.replaceAll()
método
La solución estándar para reemplazar cada subcadena de una cadena que coincida con la expresión regular dada es usar el String.replaceAll()
método.
Se puede usar para eliminar ciertos caracteres de una string, como se muestra a continuación. El siguiente código reemplaza todas las coincidencias de la expresión regular \w
con una string vacía ""
. Tenga en cuenta que \w
es una clase de carácter predefinida que denota un carácter de palabra [a-zA-Z_0-9]
.
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) { String str = "Hello, World_123!!"; str = str.replaceAll("[^\\w+]", ""); System.out.println(str); } } |
Resultado:
HelloWorld_123
Si necesita conservar solo unos pocos caracteres, puede especificar esos caracteres después de la negación ^
. Por ejemplo, [^a-zA-Z]
coincide con cualquier personaje excepto a
a z
y A
a Z
.
1 2 3 4 5 6 7 8 9 10 |
public class Main { public static void main(String[] args) { String str = "Hello, World_123!!"; str = str.replaceAll("[^a-zA-Z]", ""); System.out.println(str); } } |
Resultado:
HelloWorld
2. Usando String.replace()
método
Aquí hay otra solución que usa el String.replace()
método para eliminar todas las apariciones de cada carácter de la string dentro de un bucle. Este método puede funcionar relativamente más lento que el replaceAll()
método.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Main { public static void main(String[] args) { String str = "Hello, World_123!!"; String charsToRemove = ",_!"; for (char c : charsToRemove.toCharArray()) { str = str.replace(String.valueOf(c), ""); } System.out.println(str); } } |
Resultado:
Hello World123
3. Usar Guava
Si prefiere la biblioteca Guava, puede usar su CharMatcher clase para eliminar ciertos caracteres de una string. La idea es obtener un comparador de caracteres que coincida con cualquiera de los caracteres especificados y eliminar todos los caracteres coincidentes del conjunto de caracteres especificado utilizando el removeFrom()
método. Esto se demuestra a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import com.google.common.base.CharMatcher; public class Main { public static void main(String[] args) { String str = "Hello, World_123!!"; String charsToRemove = ",_!"; str = CharMatcher.anyOf(charsToRemove).removeFrom(str); System.out.println(str); } } |
Resultado:
Hello World123
Como alternativa, puede utilizar el retainFrom()
método para conservar todos los caracteres coincidentes del conjunto de caracteres especificado, como se muestra a continuación:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import com.google.common.base.CharMatcher; public class Main { public static void main(String[] args) { String str = "Hello, World_123!!"; String charsToRetain = "0123456789"; str = CharMatcher.anyOf(charsToRetain).retainFrom(str); System.out.println(str); } } |
Resultado:
123
Se trata de eliminar ciertos caracteres de una string en Java.