2011-10-06 55 views
5

Tôi có một ArrayList đầy đủ các chuỗi mảng mà tôi xây dựng như thế này:In một chuỗi từ ArrayList của String []?

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

tôi có ba mảng như trên trong ArrayList của tôi:

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

vv

Bây giờ nếu tôi muốn in ra các phần tử trong mảng String trong vùng lân cận ... Tôi không thể. Gần nhất tôi có thể nhận được để hiển thị các nội dung của [] mảng String là địa chỉ của họ:

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

Tôi đã thử rất nhiều phiên bản khác nhau về những gì có vẻ là điều tương tự, lần thử cuối cùng là:

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

tôi không thể vượt qua điều này vì các loại tương thích:

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

Help!

Tôi đã thử các giải pháp ở đây: Print and access List

Trả lời

4

Cast Object thành một String[]:

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

hoặc sử dụng một ArrayList tham số:

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

Sau đó, bạn sẽ không phải bỏ valu trở lại e từ get().

+1

Các ArrayList là hiện tại "đúng" cách để làm việc đó. –

+0

Cảm ơn bạn !! Điều đó đã làm nó! :) – user961627

+0

@Kurtis: Trừ khi bạn đang mắc kẹt trong đất Pre-1.5 – Poindexter

9

Hãy thử một cái gì đó như thế này

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, đây là cách đơn giản nhất "Java" . Người hỏi câu hỏi nên thử và tìm hiểu hành vi của các nguyên tắc cơ bản về java như các lớp trợ giúp Object.toString() và Arrays/Collections –

Các vấn đề liên quan