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

Java报错‘cannot find symbol length’:统计数组中9的出现次数遇问题

解决数组统计9的次数时出现的"cannot find symbol length"错误

嘿,我来帮你拆解这个问题!你遇到的cannot find symbol length错误,核心原因肯定是你用来存储9的那个“新数组”,并不是Java的基础数组类型,或者变量名搞错了——毕竟你说循环里用原数组的length没问题,说明你对数组的length属性用法是清楚的。

最可能的两种原因:

  1. 你用了集合类而非数组
    比如你可能用了ArrayList<Integer>来存9,而集合类的长度是通过size()方法获取的,不是length属性!举个错误示例:

    // 错误写法:ArrayList没有length属性
    ArrayList<Integer> nineList = new ArrayList<>();
    for (int num : originalArray) {
        if (num == 9) {
            nineList.add(num);
        }
    }
    return nineList.length; // 这里必然报错!
    

    改成nineList.size()就正常了。

  2. 变量名不匹配
    比如你声明的新数组变量是nineArray,但返回的时候写成了nines.length,编译器找不到nines这个变量,自然也找不到它的length属性。仔细检查变量名拼写是否一致就行。

额外建议:其实不需要创建新数组

统计元素出现次数,用计数器比创建新数组更高效,还能避免这类数组/集合的混淆问题:

public int countNines(int[] nums) {
    int count = 0;
    // 增强for循环遍历数组
    for (int num : nums) {
        if (num == 9) {
            count++;
        }
    }
    return count;
}

这种写法不需要额外开辟内存存新数组,代码也更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:53:54