如何比较两个不同数组中的String组件(Java)

时间:2016-03-28 02:18:21

标签: java arrays

我正在构建一种类型的游戏(至少现在就是这样......)基本上,我希望玩游戏的人进入一个省(是的我是加拿大人)及其资本和计划告诉他们他们是否正确这样做。

例,

array1[ ] = {ontario, manitoba, saskatchewan};
array2[ ] = {toronto, winnipeg, regina};

我想以这样的方式对其进行编码:如果array1的组件1等于array2的组件1,那么它是正确的。对不起,我是java和这个网站的新手。

2 个答案:

答案 0 :(得分:3)

您可以使用Map来实现此目的。以下剪切实现将小写状态映射到其首都城市。

Map<String,String> stateCapital = new HashMap(){{
        put("ontario","toronto");
        put("manitoba","winnipeg");
        put("saskatchewan","regina");
    }}; 

如果stateName表示sate的名称,而capitalName表示大写的名称,则可以通过表达式返回的布尔值来验证组合:

stateCapital.get(stateName.toLowerCase()).equalsIgnoreCase(capitalName)

如果您已经拥有数组中的所有州名和大写字母,则可以将它们放在地图中。

答案 1 :(得分:1)

我同意以前的答案。 HashMap可能最适合您的用途。但是,您仍然可以使用数组执行此操作。我不确定你想怎么做你的游戏,但你可以尝试这样的事情:

for (int i = 0; i < array1.length; i++) {
    if (userInput.compareTo(array2[i]) == 0) {
        return correctAnswer;
    }
}