2012-03-25 11 views

Respuesta

47

Prueba esto:

String[] trimmedArray = new String[array.length]; 
for (int i = 0; i < array.length; i++) 
    trimmedArray[i] = array[i].trim(); 

Ahora trimmedArray contiene las mismas cadenas que array, pero sin espacio inicial y final. Alternativamente, se podría escribir esto para la modificación de las cuerdas en el lugar de la misma matriz:

for (int i = 0; i < array.length; i++) 
    array[i] = array[i].trim(); 
5

Usted sólo puede iterar sobre los elementos de la matriz y llame array[i].trim() en cada elemento

+6

y recuerde asignar de nuevo a 'array [i]' !!!! de lo contrario, la iteración no tendrá ningún efecto. – amit

+0

Tendrá que almacenar las cadenas recortadas en algún lugar, pero no necesariamente en 'matriz [i]'. Podría ser mejor almacenarlos en una segunda matriz, dependiendo de las necesidades de OP – hehewaffles

+2

Su pregunta ['para eliminar el espacio en blanco de todos los elementos ...'] sugiere que desea anular los valores actuales con cadenas recortadas, por lo tanto, si esto de hecho es el caso - tendrá que volver a almacenarlo en 'matriz [i]' – amit

-2
String val = "hi hello prince"; 
String arr[] = val.split(" "); 

for (int i = 0; i < arr.length; i++) 
{ 
    System.out.print(arr[i]); 
} 
+0

Debe proporcionar, ¿Por qué funciona su código? Quizás el OP necesita información adicional. –

6

Sé que esto es un post muy viejo, pero desde Java 1.8 hay una manera más agradable para recortar cada cuerda en una matriz.

Java 8 Lamda solución de Expresión:

List<String> temp = new ArrayList<>(Arrays.asList(yourArray)); 
temp.forEach(e -> {temp.set((temp.indexOf(e), e.trim()}); 
yourArray = temp.toArray(new String[temp.size()]); 

con esta solución que no tiene que crear una nueva matriz.
Al igual que en la solución de Óscar López

+1

Solo una edición menor: 'temp.forEach (e -> {temp.set (temp.indexOf (e), s.trim());});', de lo contrario, me da un error de sintaxis. –

12

Otra opción java 8 lambda:

String[] array2 = Arrays.stream(array).map(String::trim).toArray(String[]::new); 

Y la versión optimizada feo, pero sin nueva creación de la matriz

Arrays.stream(array).map(String::trim).toArray(unused -> array); 

original "matriz" se modifica.

4

En Java 8, Arrays.parallelSetAll parece confeccionado para este fin:

import java.util.Arrays; 

Arrays.parallelSetAll(array, (i) -> array[i].trim()); 

Esto modificará la matriz original en su lugar, en sustitución de cada elemento con el resultado de la expresión lambda.

6

Agregue commons-lang3-3.1.jar en la ruta de creación de la aplicación. Utilice el siguiente fragmento de código para recortar la matriz de cadenas.

String array = {" String", "Tom Selleck "," Fish "}; 
array = StringUtils.stripAll(array); 
Cuestiones relacionadas