首页 > 解决方案 > 使用 arrayName[i][j].equalsIgnoreCase 在二维数组中搜索 Java 未找到值

问题描述

在过去的几个小时里,我一直在寻找社区寻找解决方案。如果您发现这是重复的,请关闭并引导我找到解决方案。提前致谢!

我正在搜索一个二维数组,希望将 TextView 中输入的卡片组合与数组中的卡片组合相匹配。代码没有认识到它找到了正确的条目,并且总是以 False 循环遍历。我想知道我是否没有以正确的方式存储和搜索字符串。

例如,如果在我输入 Q3 的 TextView 中,Logcat 将显示:

检查:: [Q3] 搜索:: [Q3]

所以我知道我们正在循环并点击数组中的正确项目。但我无法让代码识别它。

//Get the text from the holeCards TextView
holeCards = (TextView)findViewById(R.id.enter_cards_text);
String holeCardsText = ((TextView) holeCards).getText().toString();

//Search cardParisArray for holeCardsText

int rows = cardPairsArray.length;
int columns = cardPairsArray[0].length;
String cardPairArrayRows = Integer.toString(rows);

for (int i = 0; i < rows; i++) {

    for (int j = 0; j < columns; j++) {

        Log.d("Searching:", Arrays.toString(new String[]{holeCardsText}));
        Log.d("Checking:", Arrays.toString(new String[]{cardPairsArray[i][j]}));

        if (cardPairsArray[i][j].equalsIgnoreCase(holeCardsText) == true) {

            responseTextView.setText("Cards were found");

        }else responseTextView.setText("Cards not found");
    }
}

标签: javaandroidarrays2d

解决方案


解决方案是双重的。找到字符串时,Else 语句被覆盖。所以我删除了 else 语句。

第二个包含需要匹配大小写,所以我确保在文本视图中输入的文本被转换为大写。

如果您有更好的答案,请随时发表评论。


推荐阅读