繁体   English   中英

查找元素在Java中出现的次数

[英]Finding the number of times an element occurs in Java

public int howMany(String element) {
    int amt = 0;
    for (int i = 0; i < log.length; i++) {
        if (element.equalsIgnoreCase(log[i]))
            amt = amt+1;
        }
    return amt;
    }
}

那就是我目前的代码。 它采用提供的元素,并循环遍历以amt形式计数的次数。 但是,当我实际运行的测试中期望有一个非0的数字时,它会失败,因为由于某种原因,无论如何,HowMany IS 0赋予它的数字是多少。 即使我在一开始将amt更改为5,但在运行如下所示的测试时,它仍然为0。

public void test_1_match_at_beginning() {   
    strLog.insert("string 1"); strLog.insert("string 2");
    strLog.insert("string 3"); strLog.insert("string 4");
    strLog.insert("string 5"); 

    assertEquals(1, strLog.howMany("string 1"));        
}

我可以采取什么措施解决此问题? 因为如我所见,我什至不知道是什么原因造成的。

编辑:糟糕。 阵列版本的测试已被注释掉。 实际运行的是链接版本,但尚未更改。 抱歉浪费大家的时间。

您的代码的一个大问题是,您的退货放置在错误的位置。 您应该注意,如果适当缩进代码。 现在,将return放入for循环中,这意味着在检查第一个元素之后,它将返回amt 尽管它可能不会导致您描述的问题(总是返回0?),但这肯定是您需要解决的大问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM