2017-06-16 468 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 ++;  
    } 
相关问题