如何在不使用s循环的情况下对字符串进行多次计数

Ati*_*uke 1 java

下面的代码用于计算每次字符串'x'出现在字符串中但它只计算一次..

我不想使用循环.

public class recursionJava

{

   public static void main(String args[])

   {

      String names = "xxhixx";

      int result = number(names);
      System.out.println("number of x: " + result);
   }

   public static int number (String name)
   {

      int index = 0, result = 0;

      if(name.charAt(index) == 'x')
      {
         result++;
      }
      else
      {
         result = result;
      }
            index++;

      if (name.trim().length() != 0)
      {
        number(name);
      }
      return result;
   }
}
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 6

您可以替换/删除字符,然后比较结果字符串的长度:

String names = "xxhixx";
int numX = names.length() - names.replace("x", "").length(); // numX == 4
Run Code Online (Sandbox Code Playgroud)

  • 那么为什么人们会嘲笑这个聪明的伎俩呢? (2认同)

Era*_*ran 5

如果您不想使用循环,可以使用递归:

public static int number (String name)
{
    if (name.length () == 0)
        return 0;
    int count = name.charAt(0)=='x' ? 1 : 0;
    return count + number(name.substring(1));
}
Run Code Online (Sandbox Code Playgroud)