Вывести строку из ArrayList of String []? - PullRequest
6 голосов
/ 06 октября 2011

У меня есть ArrayList, полный массивов строк, которые я построил так:

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

В моем ArrayList есть три массива, как указано выше:

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

и т.д.

Теперь, если я хочу распечатать элементы в массивах String в пределах окружающих слов ... я не могу. Самое близкое к отображению содержимое массивов String [] - это их адреса:

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

Я пробовал много разных версий одного и того же, последняя попытка была:

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();
    }

Я не могу пройти через это из-за несовместимых типов:

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

Помощь!

Я уже попробовал решения здесь: Печать и доступ к списку

Ответы [ 2 ]

11 голосов
/ 06 октября 2011

Попробуйте что-то вроде этого

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));
        }
    }

}
4 голосов
/ 06 октября 2011

Ввести Object в String[]:

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

или используйте параметризованный ArrayList:

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

Тогда вам не придется приводить возвращаемое значение из get().

...