如何在java中循环迭代时计算特定字符串是否匹配?

时间:2015-04-01 20:08:15

标签: java for-loop iterator bluej

这是我过去的作业,我无法及时完成。我是一个新的程序员,正在努力使用这个程序CharacterSearch的方法。我坚持使用哪种布尔逻辑用于我的if语句,以及如何使用预定义的字符变量在短语中查找匹配项。示例测试是:character =“x”,phrase =“Xerox”。而X和x是不同的。预期输出应为count = 1。 编辑:应该在不使用数组或列表的情况下回答此问题。

 /**
 * Counts and returns the number of times the letter for this class 
 * occurs in the phrase. The class is case sensitive. 
 */
public int letterCount(String phrase)
{  
    Scanner jf = new Scanner(phrase);
    count = 0;
    for (int i = phrase.length(); i > 0; i--)
    { 
        jf.findInLine(character);         
        if(jf.hasNext())
        {
            count++;
            jf.next(); 


        }             
    }
    return count;
}

4 个答案:

答案 0 :(得分:1)

你去了:

/**
 * Counts and returns the number of times the letter for this class 
 * occurs in the phrase. The class is case sensitive. 
 */
public int letterCount(String phrase)
{
    int count = 0;
    // for every character in phrase ...
    for (int i = 0; i < phrase.length(); i++)
    { 
        // ... if it is the right one ...
        if(phrase.charAt(i) == character)
        {
            // ... increment the counter
            count++;
        }
    }
    return count;
}

您不需要任何扫描仪,代码相当简单,易读且易于理解。

答案 1 :(得分:0)

几乎是Simple way to count character occurrences in a string

的副本

我还不能发表评论,因为我的代表太低但我想给你一个你可以使用的解决方案。

答案 2 :(得分:0)

public int letterCount(String phrase)
{
    count = 0;
    for (int i = 0 ; i < phrase.length(); i++)
    {   
        String myLetter = phrase.substring(i, i + 1);
        if (myLetter.equals(character))
        {             
            count++;
        }
    }
    return count;
}

我发现我在错误的方向上进行迭代,但更重要的是我没有声明一个子字符串来检查我的字符是否与短语中的单个字母匹配。

答案 3 :(得分:0)

将String的子字符串与compare()一起使用。

public int letterCount(String phrase, String match)
{  
    int count = 0;
    for(int i=0;i<phrase.length()-1;i++){  //-1 avoid out-of-bound exception
        String letter = phrase.substring(i, i+1);
        if(letter.compareTo(match) == 0){
            count++;
        }
    }   

    return count;
}