簡體   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