标签:c arrays concatenation string
我在开发应用程序时遇到问题.
基本上,
我有一个固定的字符串,让我们说“IHaveADream”
我现在想要用户插入另一个字符串,为了我固定长度的目的,然后将固定字符串的每个字符与用户插入的字符串的每个字符连接起来.
例如
用户插入“ByeBye”
然后输出将是:
“IBHyaevBeyAeDream”.
怎么做到这一点?
我已经尝试使用String.Concat和String.Join,在for语句中,没有运气.
解决方法:
一个内存有效的选项是使用字符串构建器,因为原始字符串和用户输入都可能相当大.正如Kris所提到的,您可以将StringBuilder容量初始化为两个字符串的总长度.
void Main()
{
var start = "IHaveADream";
var input = "ByeBye";
var sb = new StringBuilder(start.Length + input.Length);
for (int i = 0; i < start.Length; i++)
{
sb.Append(start[i]);
if (input.Length >= i + 1)
sb.Append(input[i]);
}
sb.ToString().Dump();
}
这只能安全地说明输入字符串的长度与起始字符串的长度相等或相等.如果您有一个较长的输入字符串,您需要将较长的长度作为for循环迭代的结束点,并检查每个数组索引是否超出范围.
void Main()
{
var start = "IHaveADream";
var input = "ByeByeByeByeBye";
var sb = new StringBuilder(start.Length + input.Length);
var length = start.Length >= input.Length ? start.Length : input.Length;
for (int i = 0; i < length; i++)
{
if (start.Length >= i + 1)
sb.Append(start[i]);
if (input.Length >= i + 1)
sb.Append(input[i]);
}
sb.ToString().Dump();
}
标签:c,arrays,concatenation,string 来源: https://codeday.me/bug/20190609/1204200.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。