比较2个字符串数组Java的索引

时间:2013-04-06 17:27:26

标签: java arrays string

我正在试图弄清楚如何引用2个字符串数组的索引。在checkAnswer方法中,我可以确认用户输入存储在index [i]的capitalArray中但是如何比较capitalArray [i] == stateArray [i]的索引而不是比较存储在index [i] <的字符串< / p>

        public static void main{ 
        ...

        for (int i = 1; i <=10;  i++){

        System.out.println("What is the capital of " + stateArray[randomQuestion(0)]"?");
        answer = in.nextLine();

        if (checkAnswer(stateArray, capitalArray, answer) == true)
        {
            correct++;
        }
        total = i;
    }
  }

   public static boolean checkAnswer(String[]stateArray, String[]capitalArray, String answer) {

    for (int i = 0; i < stateArray.length; i++) 
    {
        if (capitalArray[i].equalsIgnoreCase(answer) && capitalArray[i] == stateArray[i])    
        {
            return true;
        }
    }

    return false;
}

2 个答案:

答案 0 :(得分:0)

只需使用Hashmap存储资本和州。你使用2个数组使它变得复杂。 Hashmap可以将状态作为键和资本作为vaule,现在您可以轻松地进行迭代和检查。

编辑:

当您知道资本和州将处于相同的索引时,您将通过比较2个数组的索引来实现什么?一旦你在资本阵列中获得了大量资金,你就完成了。无需检查状态数组。

但我不建议使用数组方法。

编辑:

在开始循环之前检查两个数组是否具有相同的长度就足够了,如果你想要进行验证那么

答案 1 :(得分:0)

您应该确定要使用的随机状态,保留该索引,然后在同一索引中检查用户对capitalArray的输入。在检查答案时,无需遍历两个数组。

这样的事情:

index = Random.nextInt(50);  // random number between 0-49

System.out.println("Enter the capital for " + states[index] + ":");
String answer = in.nextLine();


//Precondition: the arrays for the capitals and state must be in the correct order for
//this to work properly
if ( capitals[index].equalsIgnoreCase( answer ) )
{
    return true;
}
else
{
    return false;
}

您拥有的checkAnswer功能是将answercapitalArray进行比较,然后查看capitalArray[i]stateArray[i]是否为相同的字符串。当然后者不是真的。