recortar imagen java
Java-Dividir y recortar en una sola toma (6)
¿Qué hay de dividir con coma y espacio?
String result[] = attributes.split(",//s");
Tengo una cadena como esta: String attributes = " foo boo, faa baa, fii bii,"
quiero obtener un resultado como este:
String[] result = {"foo boo", "faa baa", "fii bii"};
Así que mi problema es cómo debo dividir y recortar en una sola toma que ya partí:
String[] result = attributes.split(",");
Pero los spaces
siguen en el resultado:
String[] result = {" foo boo", " faa baa", " fii bii"};
^ ^ ^
Sé que podemos hacer un bucle y hacer un trim
para cada uno, pero quiero hacerlo en el tiro.
Si no hay texto entre las comas, la siguiente expresión no creará elementos vacíos:
String result[] = attributes.trim().split("//s*,+//s*,*//s*");
Usando Java 8 puedes hacerlo así en una sola línea.
String[] result = Arrays.stream(attributes.split(",")).map(String::trim).toArray(String[]::new);
Use la expresión regular /s*,/s*
para dividir.
String result[] = attributes.split("//s*,//s*");
Para espacios en blanco iniciales y finales
La solución anterior todavía deja espacios en blanco iniciales y finales. Entonces, si esperamos alguno de ellos, podemos usar la siguiente solución para eliminar el mismo:
String result[] = attributes.trim().split("//s*,//s*");
crea tu propia función personalizada
private static String[] split_and_trim_in_one_shot(String string){
String[] result = string.split(",");
int array_length = result.length;
for(int i =0; i < array_length ; i++){
result[i]=result[i].trim();
}
return result;
Sobrecarga con una consideración para delimitador personalizado.
private static String[] split_and_trim_in_one_shot(String string, String delimiter){
String[] result = string.split(delimiter);
int array_length = result.length;
for(int i =0; i < array_length ; i++){
result[i]=result[i].trim();
}
return result;
String result[] = attributes.trim().split("//s*,[,//s]*");
publicado anteriormente aquí: https://blog.oio.de/2012/08/23/split-comma-separated-strings-in-java/