2011-07-25 76 views
0

我有這個數組列表,我想把數據放在array.but但我有問題來分離數據。 的ArrayList DATA_LIST:在java中的數組的字符串

g e r m a n y 
a u s t r a l i a 
n e w z e a l a n d 
e n g l a n d 
c o s t a r i c a 
p h i l i p i n a 
m y a n m a r 
t h a i l a n d 

注:每個字母都是用空格分開。 我想分開國家的名稱,以成爲單獨的字母,如 德國成爲我的朋友 我打算將arraylist轉換爲2d array.so輸出變成這樣: String [] [] country;

country[0][0]=g 
country[0][1]=e 
country[0][2]=r 
country[0][3]=m 
country[0][4]=a 
country[0][5]=n 
country[0][6]=y 

country[1][0]=a 
country[1][1]=u 
country[1][2]=s 
country[1][3]=t 
country[1][4]=r 
country[1][5]=a 
country[1][6]=l 
country[1][7]=i 
country[1][8]=a 

任何人都可以幫助我嗎?

+0

我們的原始ArrayList是String的數組列表嗎? –

回答

0

如果你的ArrayList是這樣的:

List<String> countries = Arrays.asList("g e r m a n y", "a u s t r a l i a", "n e w z e a l a n d", 
    "e n g l a n d", "c o s t a r i c a", "p h i l i p i n a", "m y a n m a r", "t h a i l a n d"); 

然後你就可以創建你的字符數組是這樣的:

String[][] countryLetters = new String[countries.size()][]; 
for (int i = 0; i < countries.size(); i++) { 
    String country = countries.get(i); 
    countryLetters[i] = country.split(" "); 
} 
// test output 
for (String[] c : countryLetters) { 
    System.out.println(Arrays.toString(c)); 
} 

測試輸出是

[g, e, r, m, a, n, y] 
[a, u, s, t, r, a, l, i, a] 
[n, e, w, z, e, a, l, a, n, d] 
[e, n, g, l, a, n, d] 
[c, o, s, t, a, r, i, c, a] 
[p, h, i, l, i, p, i, n, a] 
[m, y, a, n, m, a, r] 
[t, h, a, i, l, a, n, d] 
+0

線程「main」中的異常java.lang.ArrayIndexOutOfBoundsException:0 – Roubie

+0

它現在工作嗎?代碼在這裏運行。 – migu

+0

仍然不能run.with d相同的錯誤 – Roubie

1

使用String類的toCharArray()方法。

0
ArrayList<String> orig = new ArrayList<String>(); 
orig.add("G e r m a n y"); 
orig.add("A u s t r a l i a"); 

String[][] newArray = new String[orig.size()][]; 
int i = 0; 
for(String s : orig) 
    newArray[i++] = s.split(" "); 
+0

如果你需要循環中的索引,我通常會避免每個循環。 (其中包括限制「臨時」變量的範圍)。 – aioobe

+0

此解決方案不處理字母之間的空格。 – migu

0
String a = "germany"; 
    String b = "india"; 
    char[] ar = a.toCharArray(); 
    char[] br = b.toCharArray(); 
    char [][] td = new char[2][2]; 
    td[0] = ar; 
    td[1] = br; 
    System.out.println(td); 
    System.out.println(td[0][0]+""+td[0][1]+""+td[0][2]+""+td[0][3]+""+td[0][4]+""+td[0][5]+""+td[0][6]); 
+0

這是什麼?我不明白 – Roubie