2017-06-16 89 views
0

我是Java新手,遇到困難我有一個任務,需要我加載一個文本文件,其名稱爲狀態,然後將它的大寫字母寫入程序,並將狀態名稱讀入一個數組,並將大寫字母讀入另一個數組中。我解決這個問題的方式是將文本文件加載到一個名爲total的數組中,並進行了計數。我想把這些分裂成一個獨立的陣列稱爲資本,而那些處於奇怪位置的陣列稱爲狀態陣列。但我不確定如何把它放到代碼中。這是我迄今爲止java:將一個數組拆分爲基於數組偶數和奇數位置的兩個獨立數組

文本文件的樣本:

Alabama 
Montgomery 
Alaska 
Juneau 
Arizona 
Phoenix 
Arkansas 
Little Rock 
California 
Sacramento 
Colorado 
Denver 
Connecticut 
Hartford 
Delaware 
Dover 
Florida 
Tallahassee 
Georgia 
Atlanta 
Hawaii 
Honolulu 

而且到目前爲止我的代碼

public class StateCapitals 
{ 

    /** 
    * @param args the command line arguments 
    * @throws java.io.FileNotFoundException 
    */ 
    public static void main(String[] args) throws FileNotFoundException 
    { 
     File inputfile; 
     File outputfile; 
     inputfile = new File("capitals.txt"); 
     outputfile = new File ("InOrder.txt"); 
     String stateandcity; 
     int count; 
     count = 1; 

     PrintWriter pw; 
     Scanner kb; 
     kb = new Scanner(inputfile); 


     String [] total; 
     total = new String[100]; 

     String [] capitals; 
     capitals = new String[50];  

     String [] states; 
     states = new String [50]; 

     while (kb.hasNextLine()) 
     { 
     stateandcity = kb.nextLine(); 
     System.out.println("Count: " +count + " " + stateandcity); 

     total[count-1] = stateandcity; 
     count ++; 

     } 

     if (count % 2 == 0) 
      states = new String [50]; //where i need help 

    }} 
+0

示例文本輸入文件將有助於 –

+0

我希望城市和國家由',',要不然,分配必要的複雜分離。 (另外,您正在閱讀的城市和國家爲1個字符串,所以你需要分割的字符串,而不是數組) – Tezra

+0

所以文本文件將有類似:阿拉巴馬 蒙哥馬利 阿拉斯加 朱諾 亞利桑那 鳳凰 阿肯色州 小Rock 加利福尼亞州 薩克拉門託 – zconner

回答

0

的算法是這樣的:

  • 讀到的一切像你已經想到的total
  • 使用for循環從i = 0循環到i = 100(或者需要拆分多個項目),每次增加2。
  • 指定total[i]capital[i/2]
  • 分配total[i + 1]states[i/2]

就這麼簡單!先嚐試自己做。如果您遇到困難,請發表評論!

+0

這是行不通的。他正在讀取城市和州作爲1弦,因此以任何方式吐出陣列都不會將州與城市分開。他們需要分開每一行。 – Tezra

+0

哦,我想我被OP聲明的數組長度所欺騙,並沒有看他如何實際讀取文件。現在編輯。 @Tezra – Sweeper

+0

對不起,被OP弄糊塗了..我想回滾你的答案= P – Tezra

0

我會分開他們,而這樣讀他們。 (保存自己的循環)

while (kb.hasNextLine()) 
    { 
    state[count] = kb.nextLine(); 
    capitals[count] = kb.nextLine(); 
    System.out.println("Count: " +count + " " + 
         state[count] + "," + 
         capitals[count]); 

    count ++;  
    } 
相關問題