Java:查找在没有使用API​​的情况下在一个句子中出现字符串的次数

时间:2018-03-12 21:09:51

标签: java charat

除了.charAt之外,我应该在不使用API​​的情况下找到单词在给定行中出现的次数。任何帮助都会很棒!谢谢

输入结果:

  

     

我的狗是非常可爱的狗

     

每只狗经过另一只狗,狗会在另一只狗身上吠叫

     

他们非常可爱

前言:

  

最终输出:第1行为1,第2行为2,第3行为4,第4行为0。

我能够通过检查第一个字母来获取howManyTimes输出,但我无法弄清楚如何检查所有字符是否与单词相同。

public void calculation(String input, String word, int count)
{
    howManyTimes=0;
    line = count + "";
    int counter = 0;
    for(int i = 0; i < input.length() - word.length(); i++)
    {
        for(int j = 0; j < word.length(); j++)
        {
            if(word.charAt(j) == input.charAt(i+j))
            {
                counter++;
                if(word.length()==counter)
                {
                    howManyTimes++;
                }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

你快到了:

  1. condition input.length() - word.length()失去一只狗(在行尾)
  2. 你必须要小心你如何定义单词(你的例子没有单独的单词,“dodog”将包含单个“dog”单词。
  3. 请将您的计数器归零 - 或者如下所示声明内部循环:
  4. 更正后的代码:

    public int calculation(String input, String word)
    {
          int howManyTimes = 0;
          for(int i = 0; i < input.length() - word.length() + 1; i++)
          {
              int counter = 0;         
              for(int j = 0; j < word.length() && word.charAt(j) == input.charAt(i+j); j++)
              {
                  counter++;
              }
              if (word.length() == counter) {
                  howManyTimes++;
              }
          }
          return howManyTimes;
    }