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

4

我正在开发一款游戏(至少目前是这样),基本上,我希望玩游戏的人输入一个省份(是的,我是加拿大人)及其首府,程序会告诉他们是否输入正确。

例如:

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

我希望以这样的方式编写代码,如果array1的第一个组件等于array2的第一个组件,则正确。抱歉,我对Java和这个网站还比较陌生。


1
最好使用Map来实现这个目的。 - Sendhilkumar Alalasundaram
请展示您当前的代码,我们可以根据那个来帮助您。 - Antony Dao
2个回答

3
您可以使用Map实现此目的。以下代码段将小写状态映射到它们的首都城市。
Map<String,String> stateCapital = new HashMap(){{
        put("ontario","toronto");
        put("manitoba","winnipeg");
        put("saskatchewan","regina");
    }}; 

如果stateName表示州名,capitalName表示首都名,您可以通过表达式返回的布尔值来验证组合是否正确:

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

如果您已经将所有的州名和首府存储在数组中,您可以将它们放入地图中。

1

我同意之前的答案。对于你的目的来说,HashMap 可能是最好的选择。然而,你仍然可以使用数组完成它。我不确定你想如何实现你的游戏,但你可以尝试像这样:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接