首页 > 解决方案 > 如何组合两个字符串并按 4 个字符创建集合,两个来自一个字符串,另外两个来自另一个字符串?C#

问题描述

我陷入了创建一种算法,该算法从两个字符串创建 4 个字符集,从一个字符串创建两个字符,从另一个字符串创建两个字符。例子:

我期望的结果是得到这样的字符10集:等等,直到我们得到这样的组合。4FILA, RSST, TNNA, AMME, EFLA10

这是我制作的代码

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Name");
        string name = Console.ReadLine();
        Console.WriteLine("Lastname");

        string lastname = Console.ReadLine();

        int i;

        var nchars = name.ToCharArray();
        var pchars = lastname.ToCharArray();

        for (i = 0; i <= 10; i++){
            int ctr0;
            int ctr;
            int ctr2;

            for (ctr = 0, ctr2 = 1, ctr0 = 1; 
                 ctr < 10; 
                 ctr0++, ctr = ctr + 2, ctr2 = ctr2 + 2) {
              Console.WriteLine("{0}{1}{2}{3}{4}",
                  ctr0,
                  nchars[ctr],
                  nchars[ctr2],
                  pchars[ctr],
                  pchars[ctr2]);
            }
        }
    }
}

到目前为止输出很好,因为我得到了

1FILA
2RSST
3TNNA
4AMME

但是当字符串结束时它会停止,而不是得到 10 个组合,我只得到 4.. 我能做什么?我做错了吗?

标签: c#string

解决方案


试图纠正你的算法,我认为这是你应该尝试的:

public class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Name");
        string name = "FIRSTNAME";
        Console.WriteLine("Lastname");
        string lastname = "LASTNAME";
        int i;
        var nchars = name.ToCharArray();
        var pchars = lastname.ToCharArray();
        var ncharsCount = nchars.Length;
        var pcharsCount = pchars.Length;
        //for (i=0;i<=10;i++){
            int ctr0;
            int ctr;
            int ctr2;
            for (ctr = 0, ctr2 = 1, ctr0=1; ctr0 < 10 ;ctr0++, ctr++,ctr2++){
                Console.WriteLine("{0}{1}{2}{3}{4}", ctr0,nchars[ctr%ncharsCount],nchars[ctr2%ncharsCount],pchars[ctr%pcharsCount],pchars[ctr2%pcharsCount]);
            }
        //}
    }
}

推荐阅读