¿Cómo puedo llenar una matriz con el bucle for-each de Java?

Había publicado un pregunta antes intenté encontrar un error en mi código, y el problema principal fue que había usado incorrectamente un para cada bucle. Soy nuevo en Java y me preguntaba por qué lo que había intentado era incorrecto y si habría alguna forma posible de hacer la tarea con un para cada bucle.

public Dids(String thing)
{
    letters= new char[thing.length()];  
    for(char i: letters){
        letters[i] = thing.charAt(i);
    }
}

Mi pensamiento era que, dado que había declarado el tamaño de la matriz antes de los bucles, podría recorrerlo en iteración.

preguntado el 28 de agosto de 11 a las 00:08

estás usando la letra en cada ubicación como un índice ... todo está retorcido. :-) Probablemente te refieres a (int i = 0; i <cosa.longitud (); i ++) letras [i] = cosa.charAt (i); -

Tu pregunta fue respondida bastante a fondo la primera vez. Si necesita una aclaración, publique un comentario a la respuesta que aceptó. -

Esta es una pregunta que pertenece específicamente al bucle foreach, había declarado en mi pregunta que, de hecho, había hecho una pregunta antes y estaba relacionando esta nueva pregunta con la anterior. -

3 Respuestas

Con las construcciones foreach, no hay contador para el índice actual, solo el valor en el índice. La variable 'i' es el valor en el punto actual de la matriz.

Puede hacer esto con un bucle for ordinario

for (int i=0; i<letters.length; i++)
   letters[i] = thing.charAt(i);

O más concisamente,

char[] letters = thing.toCharArray();

Vea String.toCharArray ()

Respondido 28 ago 11, 04:08

Su variable 'i' toma el valor de cada carácter en 'letras'. No es un índice, por lo que las letras [i] no tienen ningún sentido.

La construcción 'foreach' sobre una colección solo ayuda realmente sobre un bucle for tradicional si necesita tomar medidas en función del valor de cada elemento de la colección. Si también necesita usar los índices de la colección, un bucle for tradicional será más fácil.

Respondido 28 ago 11, 04:08

Si desea convertir una cadena en una matriz de caracteres (que es lo que parece que desea hacer), simplemente use Cadena # toCharArray ()

char[] letters = thing.toCharArray();

Respondido 28 ago 11, 04:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.