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
相关产品推荐
相关产品推荐

