java:根据数组的偶数和奇数位置将一个数组拆分为两个独立的数组

时间:2017-06-16 20:30:46

标签: java arrays

我是Java的新手,我遇到了困难,我有一项任务要求我加载一个文本文件,其中包含一个状态名称,后跟其资金到程序中,并将状态名称读入一个数组和大写名称到另一个数组。我解决这个问题的方法是将文本文件加载到一个名为total的数组中并进行计数。我希望将具有偶数位置的那些分成一个名为capital的独立数组,而将那些位于奇数位置的数组分成一个名为states的数组。但我不确定如何将其放入代码中。这就是我到目前为止所拥有的

文本文件示例:

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

    }}

2 个答案:

答案 0 :(得分:0)

算法将是这样的:

  • 像您已经想到的那样将所有内容读入total
  • 使用for循环从i = 0循环到i = 100(或者有多个项目要分割),每次递增2。
  • total[i]分配给capital[i / 2]
  • total[i + 1]分配给states[i / 2]

就这么简单!先尝试自己做。如果您遇到困难,请发表评论!

答案 1 :(得分:0)

我会像这样阅读它们来分开它们。 (保存自己的循环)

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

    count ++;    
    }