recortar imagen java string split

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;