2012-04-28 102 views
0

我剛開始學習Java,目標是爲Android創作遊戲。我正在參加一個在線課程,在那裏爲我提供了一項任務,然後進行了某種評估。Java:將信息從一個陣列添加到另一個陣列

這是我迄今所做的:

public String[] pie; 
public Scanner x; 
public String[] name; 
public String[] name1; 
public String[] name2; 
public int[] year; 
public int[] numb; 
public String[] language; 
public boolean[] read; 
public int[] rating; 

    public void openfile(){ 
    try{x = new Scanner(new File("Raamatukogu.txt"));} 
    catch(Exception e){ 
     System.out.println("no file was found");}} 

public void readfil(){ 
    while(x.hasNext()){ 
     String rida = x.nextLine(); 
     pie = rida.split("#"); 
     for(int i = 0; i < pie.length ; i++){ 

我想要做的就是這樣的事情添加到我的代碼,但自動化:

name[0] = pie[0] 
name1[0] = pie[1] 
name2[0] = pie[2] 
year[0] = pie[3] 
numb[0] = pie[4] 
language[0] = pie[5] 
read[0] = pie[6] 
rating[0] = pie[7] 

name[1] = pie[8] 
name1[1] = pie[9] 
name2[1] = pie[10] 
year[1] = pie[11] 
numb[1] = pie[12] 
language[1] = pie[13] 
read[1] = pie[14] 
rating[1] = pie[15] 

name[2] = pie[16] 
name1[2] = pie[17] 
...} 

謝謝了提前!

回答

4

試試這個

int j=0; 
for(int i=0;i<pie.length;i++){ 
    name[j] = pie[0]; 
    name1[j] = pie[1]; 
    name2[j] = pie[2]; 
    year[j] = pie[3]; 
    numb[j] = pie[4]; 
    language[j] = pie[5]; 
    read[j] = pie[6]; 
    rating[j] = pie[7]; 
    j++; 
} 
+0

應該這樣做。非常尷尬,我沒有看到我自己:P。此外,對於任何看這個問題的人,你還應該添加pie [0 + i],pie [1 + i],pie [2 + i],pie [3 + i]。 – user1363284 2012-04-28 19:16:20

0

這裏是同一枚硬幣的兩面。兩者都假設pie.length是8的倍數,因爲你的代碼似乎也假設這一點。

for (int i=0; i<pie.length/8; i++) { 
    int index = i * 8; 
    name[i] = pie[index]; 
    name1[i] = pie[index+1]; 
    name2[i] = pie[index+2]; 
    year[i] = pie[index+3]; 
    numb[i] = pie[index+4]; 
    language[i] = pie[index+5]; 
    read[i] = pie[index+6]; 
    rating[i] = pie[index+7]; 
} 

for (int i=0; i<pie.length; i=i+8) { 
    int index = i/8; 
    name[index] = pie[i]; 
    name1[index] = pie[i+1]; 
    name2[index] = pie[i+2]; 
    year[index] = pie[i+3]; 
    numb[index] = pie[i+4]; 
    language[index] = pie[i+5]; 
    read[index] = pie[i+6]; 
    rating[index] = pie[i+7]; 
}