A veces, la biblioteca estándar de Java no es buena para la manipulación de cadenas. Google Guava es una biblioteca escrita por Google que proporciona algunas características interesantes. El siguiente ejemplo muestra cómo utilizar los métodos de modificación de Google Guava Splitter. Antes de comenzar, necesita descargar el archivo jar de Google Guayaba primero y agréguelo a la ruta de su proyecto.
Splitter.on("...")
es un método de fábrica que produce un divisor. Un método que se invoca en el divisor se llama Modificador. Hay 4 métodos de modificación: trimResults()
, omitEmptyStrings()
, limit(int limit)
y trimResults(CharMatcher trimmer)
.
1. Ejemplo básico de partidor de guayaba
El primer ejemplo divide una cadena sin modificadores.
package String; import com.google.common.base.Splitter; public class GuavaSplitterExample { public static void main(String[] args) { String str = "a,,b, c,,,d"; Iterable<String> result = Splitter.on(',') .split(str); System.out.println("--start--"); for(String s: result){ System.out.println(s); } System.out.println("--end--"); } } |
Resultado:
--start-- a b c d --end--
2. Ignorar cadenas vacías
Si desea ignorar las cadenas vacías, podemos usar omitEmptyStrings()
modificador.
String str = "a,,b, c,,,d"; Iterable<String> result = Splitter.on(',') .omitEmptyStrings() .split(str); |
Resultado:
--start-- a b c d --end--
3. Recorta cada cuerda en el resultado
Si desea recortar cada cadena en el resultado, es decir, eliminar los espacios en blanco iniciales y finales, puede usar trimResults()
método.
String str = "a,,b, c,,,d"; Iterable<String> result = Splitter.on(',') .trimResults() .omitEmptyStrings() .split(str); |
Resultado:
--start-- a b c d --end--
4. Limite el número de veces de división
Si desea dividir tiempos limitados para la cadena, puede poner el límite # usando limit(n)
:
String str = "a,,b, c,,,d"; Iterable<String> result = Splitter.on(',') .trimResults() .omitEmptyStrings() .limit(3) .split(str); |
Resultado:
--start-- a b c,,,d --end--
5. Recorta más personajes
No solo puede recortar los espacios en blanco, puede utilizar trimResults(CharMatcher trimmer)
para recortar otros caracteres como dígitos, letras mayúsculas, minúsculas, etc. Consulte todos los recortadores disponibles aquí.
String str = "a,,b,c1,,,d2"; Iterable<String> result = Splitter.on(',') .trimResults(CharMatcher.DIGIT) .omitEmptyStrings() .split(str); |
Resultado:
--start-- a b c d --end--