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

Java如何不使用contains方法输出数组中含字母z的字符串

实现思路

  • 首先修正现有代码的语法错误:Lettercheck方法返回值为void,不能作为System.out.println的入参
  • 遍历数组中的每一个字符串,再逐个遍历字符串的字符,和目标字符比对,只要匹配到就输出该字符串,终止当前字符串的字符遍历即可,不需要继续判断后面的字符
  • 完全不使用contains方法,仅用基础的字符遍历实现,性能也更高

完整可运行代码

public class FindCharInString {
    public static void main(String[] args) {
        System.out.println("Program prints out all the words with common letter:");
        String[] strArr = {"computers", "information systems", "test", "zoo", "pizza", "zero"};
        // 要查找z就把第二个参数改成'z'即可,原代码写的'x'是查找字符x
        letterCheck(strArr , 'z');
    }

    /**
     * 遍历字符串数组,打印所有包含指定字符的字符串
     * @param strArr 待遍历的字符串数组
     * @param target 要匹配的目标字符
     */
    public static void letterCheck(String[] strArr , char target) {
        // 遍历数组每个元素
        for (String s : strArr) {
            boolean hasTarget = false;
            // 遍历当前字符串的每个字符
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == target) {
                    hasTarget = true;
                    // 找到就跳出当前字符循环,不用继续遍历
                    break;
                }
                // 如果需要不区分大小写,就把上面的判断换成下面这句:
                // if (Character.toLowerCase(s.charAt(i)) == Character.toLowerCase(target))
            }
            if (hasTarget) {
                System.out.println(s);
            }
        }
    }
}

代码说明

  • 方法名统一用小驼峰命名,符合Java编码规范,把原来的Lettercheck调整为letterCheck
  • 内层循环用charAt()方法逐个取字符比对,完全规避contains方法的使用
  • 匹配到目标字符后直接break内层循环,避免不必要的遍历,提升执行效率
  • 注释里提供了不区分大小写的判断方案,如果需要匹配大小写不敏感的z(比如大写Z也可以命中),替换对应的判断条件即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:54:07