使用递归逐个打印字符串的一部分



我通过 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(输出:南非是议员.pl乐

提前谢谢!!

你可以尝试类似这样的东西:

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>());

最新更新