创建一个递归方法来计算C#中的特定字符

时间:2013-10-11 22:24:48

标签: c# string recursion character

我尝试在Stackflow中搜索以帮助我回答我的问题,但我没有运气,因为我找到的主要是C ++或Java。 我最近学习了递归,所以请原谅我不理解与之相关的一些术语的能力。

我的问题是谁能够回答的是,我的代码中缺少什么?我需要我的代码来成功计算我放在字符串中的语句中的特定字符。现在我的代码只打印出声明。

public class CountCharacter
{
    public static void Main (string[] args)
    {
        string s = "most computer students like to play games";
        Console.WriteLine(s);
    }

    public static int countCharacters( string s, char c)
    {
        if (s.Length ==0)
            return 0;
        else if (s[0]==c)
            return 1+ countCharacters(s.Substring(1), 's');
        else
            return 0 + countCharacters (s.Substring(1),'s');
    }
}

2 个答案:

答案 0 :(得分:3)

试试这个:

public class CountCharacter
{
    public static void Main (string[] args)
    {
        string s = "most computer students like to play games";
        Console.WriteLine(countCharacters(s, 's'));
    }

    public static int countCharacters( string s, char c)
    {
        if (s.Length == 0)
            return 0;
        else if (s[0] == c)
            return 1 + countCharacters(s.Substring(1), c);
        else
            return countCharacters(s.Substring(1), c);
    }
}

答案 1 :(得分:0)

        static void Main(string[] args)
        {
            string s = " acv jk   ik  ";
            Console.WriteLine("Total space: {0}", CountSpace(s));
            Console.ReadLine();
        }

        private static int CountSpace(string s)
        {
            if (s.Length > 1)
                return s[0] == ' ' ? 1 + CountSpace(s.Substring(1, s.Length - 1)) : CountSpace(s.Substring(1, s.Length - 1));
            return s[0] == ' ' ? 1 : 0;
        }