c# - 如何组合两个字符串并按 4 个字符创建集合,两个来自一个字符串,另外两个来自另一个字符串?C#
问题描述
我陷入了创建一种算法,该算法从两个字符串创建 4 个字符集,从一个字符串创建两个字符,从另一个字符串创建两个字符。例子:
- 字符串一:
FIRSTNAME
- 字符串二:
LASTNAME
我期望的结果是得到这样的字符10
集:等等,直到我们得到这样的组合。4
FILA, RSST, TNNA, AMME, EFLA
10
这是我制作的代码
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
.. 我能做什么?我做错了吗?
解决方案
试图纠正你的算法,我认为这是你应该尝试的:
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]);
}
//}
}
}
推荐阅读
- java - spring rest服务可以调用自己的rest模板方法postForEntity吗?
- php - 使用 PHP 将行追加到远程文件
- jakarta-ee - EJB模块中的Java安全API访问?
- mongodb-query - 我们可以在同一个应用程序中同时使用 MongoRepository 和 MongoTemplate
- java - Java - 从 CSV 文件读取错误
- webrtc - 是否可以在不询问用户许可的情况下检测浏览器摄像头?
- android - 当我在我的在线食品订购应用程序中打开食品详细信息时,我的应用程序崩溃了
- javascript - 使用延迟初始化将符号定义为属性
- python - 替换或忽略子导入的文件
- oracle - 使用 SQL 开发人员的 SQL 连接