我有字符串。
string str = "TTFTTFFTTTTF";
如何打破此字符串并添加字符","?
result should be- TTF,TTF,FTT,TTF
答案 0 :(得分:1)
您可以在按3个字符分组后使用String.Join
:
var groups = str.Select((c, ix) => new { Char = c, Index = ix })
.GroupBy(x => x.Index / 3)
.Select(g => String.Concat(g.Select(x => x.Char)));
string result = string.Join(",", groups);
因为您不熟悉编程。这是一个LINQ查询,因此您需要将using System.Linq
添加到代码文件的顶部。
Select
扩展方法创建一个匿名类型,其中包含char和每个char的索引。GroupBy
根据index / 3
integer division that truncates decimal places的结果对它们进行分组。这就是你创建三人小组的原因。String.Concat
从3个字符创建一个字符串。 String.Join
连接它们并在每个之间插入逗号分隔符。答案 1 :(得分:0)
您可以使用insert
插入将一个字符串放入另一个字符串中。这在您的C#程序中形成一个新字符串。我们使用字符串Insert方法将一个字符串放在另一个字符串的中间或任何其他位置。
提示1: 我们可以在任何索引处插入一个字符串到另一个索IndexOf可以返回合适的索引。
提示2: Insert可用于连接字符串。但这样效率较低 - concat,因为+更快。
for(int i=3;i<=str.Length - 1;i+=4)
{
str=str.Insert(i,",");
}
答案 2 :(得分:0)
使用StringBuilder
var stringBuilder = new StringBuilder();
for (int i = 0; i < str.Length; i += 3)
{
stringBuilder.AppendFormat("{0},", str.Substring(i, 3));
}
stringBuilder.Length -= 1;
str = stringBuilder.ToString();
我不确定以下内容是否更好。
stringBuilder.Append(str.Substring(i, 3)).Append(',');
我建议在这种情况下避免使用LINQ,因为它会执行更多操作,这是一项相当简单的任务。