2011-10-06 19 views
5

tengo un ArrayList llena de cadenas matrices que he construido de esta manera:Imprimir una cadena de ArrayList of String []?

String[] words = new String[tokens.length]; 

que tengo tres matrices como anteriormente en mi ArrayList:

surroundingWords.add(words); 
surroundingWords.add(words1); 
surroundingWords.add(words2); 

etc

Ahora si quiero imprime los elementos en las matrices de cadenas dentro de las palabras circundantes ... No puedo. Lo más cerca que puede llegar a mostrar el contenido de las matrices String [] es su dirección:

[Ljava.lang.String;@1888759 
[Ljava.lang.String;@6e1408 
[Ljava.lang.String;@e53108 

que he probado muchas versiones diferentes de lo que parece ser la misma cosa, el último intento fue:

for (int i = 0; i < surroudingWords.size(); i++) { 
     String[] strings = surroundingWords.get(i); 
     for (int j = 0; j < strings.length; j++) { 
      System.out.print(strings[j] + " "); 
     } 
     System.out.println(); 
    } 

no puedo superar esto debido a tipos incompatibles:

found : java.lang.Object 
required: java.lang.String[] 
       String[] strings = surroundingWords.get(i); 
                ^

Ayuda!

Ya he probado las soluciones aquí: Print and access List

Respuesta

4

emitir el Object en un String[]:

String[] strings = (String[]) surroundingWords.get(i);

o usar un ArrayList con parámetros:

ArrayList<String[]> surroundingWords = new ArrayList<String[]>();

Entonces no tendrá que emitir el valor de retorno e de get().

+1

El ArrayList es la actual forma "correcta" de hacerlo. –

+0

¡Gracias! Eso lo hizo! :) – user961627

+0

@Kurtis: A menos que estés atrapado en la tierra Pre-1.5 – Poindexter

9

intentar algo como esto

public class Snippet { 
    public static void main(String[] args) { 
     List<String[]> lst = new ArrayList<String[]>(); 

     lst.add(new String[] {"a", "b", "c"}); 
     lst.add(new String[] {"1", "2", "3"}); 
     lst.add(new String[] {"#", "@", "!"}); 

     for (String[] arr : lst) { 
      System.out.println(Arrays.toString(arr)); 
     } 
    } 

} 
+2

+1, esta es la forma más simple y más "de Java" para ir . La persona que hace la pregunta debe intentar aprender el comportamiento de los fundamentos java tales como Object.toString() y Arrays/Collections helper classes –

Cuestiones relacionadas