使用递归以字符串的形式打印部分字符串

时间:2017-04-08 10:16:26

标签: c# recursion

我通过for循环编写了一个函数,使用递归打印部分字符串,但是不能通过递归来表示相同的逻辑。

 public static List<String> list = new List<string>();

 public static void sample(String str,int length,int num)
        {   
            for (int i = 0; i+num  <= length; i++)
            {
                list.Add(str.Substring(i,num));
            }

        }

样品( “样品”,6,2) 输出: SA 上午 熔点 PL 乐

提前致谢!!!

1 个答案:

答案 0 :(得分:0)

你可以尝试类似的东西:

public static List<String> GroupString(String input, int take, List<String> output) {
    if (input.Length > take)
    {
        output.Add(new String(input.Take(take).ToArray()));
        return GroupString(new string(input.Skip(take).ToArray()), take, output);
    }
    else {
        output.Add(input);
        return output;
    }
}

你可以这样使用它:

var testString = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et";
var result = GroupString(testString, 5, new List<String>());