在C#中按顺序添加逗号到字符串

时间:2015-08-21 07:33:26

标签: c#-4.0

我有字符串

string str = "TTFTTFFTTTTF";

如何打破此字符串并添加字符","?

result should be- TTF,TTF,FTT,TTF

3 个答案:

答案 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,因为它会执行更多操作,这是一项相当简单的任务。