You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java新手求助:实现二维字符串数组中不区分大小写查找含指定字符的单词

解决Java中不区分大小写查找二维字符串数组包含指定字符的单词问题

你的代码已经有了正确的思路,只需要修正几个语法和逻辑细节就能完成功能:

修正后的完整代码

public static void findChar(String[][] arr, char ch) {
    // 将目标字符转为小写,统一大小写判断
    char lowerCh = Character.toLowerCase(ch);
    // 遍历二维数组的每一行
    for (String[] row : arr) {
        // 遍历当前行的每个单词
        for (String word : row) {
            // 先判断单词不为null,避免空指针异常
            if (word != null) {
                // 将单词转为小写后,检查是否包含目标小写字符
                if (word.toLowerCase().indexOf(lowerCh) != -1) {
                    // 输出符合条件的单词
                    System.out.println(word);
                }
            }
        }
    }
}

关键细节说明

  • 变量声明修正:原代码中ch lowerCh是语法错误,正确的变量类型声明是char lowerCh。
  • 包含判断逻辑:String.indexOf()方法如果找到目标字符会返回其索引位置,找不到则返回-1,所以判断条件用!= -1即可确认单词包含指定字符(通过统一转为小写实现不区分大小写)。
  • 空指针防护:如果二维数组中存在null元素,直接调用word.toLowerCase()会抛出NullPointerException,所以先判断word != null是必要的。

测试示例

比如调用这个方法:

public static void main(String[] args) {
    String[][] testArr = {
        {"Apple", "Banana", "Cherry"},
        {"date", "Elderberry", null},
        {"Fig", "grape"}
    };
    findChar(testArr, 'a');
}

输出结果会是:

Apple
Banana
date
grape

内容的提问来源于stack exchange,提问作者Matthew Wallbridge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:19:51