2014-02-17 99 views
0

我想用數組和方法編寫一個Java程序如下:它讀取一系列字符串,每個字符串放在一個單獨的行上,並將它們存儲在一個數組中,讓它調用input1,每個單元格一個字符串,按讀取的順序排列。序列以空行結束:一個字符串長度爲0.與第二個序列相同的東西。然後打印第一個序列和第二個序列。然後創建一個包含上述兩個數組的所有元素的數組。合併是通過在數組之間交替來完成的:也就是,複製input1的第一個單元,然後複製input2的第一個單元。然後複製input1的第二個單元,然後複製input2的第二個單元。當然,一般來說,這兩個序列可能有不同的長度,所以在較短序列結束後,較長序列的所有元素都會簡單地附加到輸出數組中。最後,打印每行1個字符串的合併數組。讀取和打印序列並打印合並序列


import java.util.Scanner; 
public class A4 { 
public static void readInput(Scanner myScanner, String[] input) { 
    boolean streamEnded = false; 
    int index = 0; 

    while (!streamEnded && myScanner.hasNext()) { 

     String value = myScanner.nextLine(); 

     if (value.length() == 0) { 
      streamEnded = true; 
      input[index] = value; 
     } else { 
      input[index] = value; 
      index++; 

     } 
    } 

} 

public static void main(String[] args) { 
    int size = 5; 
    String[] input1 = new String[size]; 
    String[] input2 = new String[size]; 
    String[] store = new String[size*2]; 

    Scanner aScanner = new Scanner(System.in); 

    readInput(aScanner, input1); 
    for (int i = 0; i < input1.length; i++) { 
     System.out.println("input[" + i +"]" + input1[i]); 
    } 

    readInput (aScanner, input2); 
    for (int i = 0; i < input2.length; i++) { 
     System.out.println("input[" + i +"]" + input2[i]); 
    } 

} 

}

我仍然不知道如何合併這2個輸入together.Can任何人告訴我該怎麼辦呢?謝謝

回答

0

聲明序列1,序列2和合並序列的三個數組。

使用一個變量whichToUse來存儲要使用的數組,然後在while循環之前將array1賦值給它,然後將值存儲到System.out.print位置的array1中,然後當第一次到達value.length()= = 0('='不是爲比較而設計的,這是代碼中的錯誤),您將whichToUse指向array2。當第二次到達value.length()== 0時,結束讀取循環。一個地方要被標記,聲明streamEnded爲一個int來計算我們到達value.length()== 0的次數。只有在streamEnded == 2時退出循環。

現在你有兩個包含文件值的數組。下一步是合併它們。使用for循環迭代merge-sequence中的項目,並使用循環計數器%2確定將值分配給合併序列項目時要讀取哪個數組。在array1和array2中的任何一個到達末尾之後,讀取其餘循環中的另一個數組。

就像你剛剛接觸Java一樣,我認爲自己編寫代碼比我向你提供代碼要好得多。如果您有任何其他問題,請點擊此處留言。

+0

感謝您的回覆,但我很抱歉我有點慢,您能解釋一下還是給我更多提示。謝謝, – BBKay

+0

這裏我到目前爲止 – BBKay

+0

你只需要迭代第三個數組,並確定當前項應分配給哪個值。 – pengfeil