如何在c#stringbuilder中附加每个X.

时间:2016-03-23 22:33:44

标签: c# append stringbuilder

我正在使用unity和c#,并且我不确定如何使用stringbuilder在每个X字符后追加“/”。我有代码,可以使用下面的代码从数组构建一个字符串,并在每个字符串后添加一个逗号,但我需要在每个x字符串后添加“/”

它应该例如将“122342”转换为“1,2,2,/,3,4,2”。目前它将它转换为“1,2,2,3,4,2” 这是我已经的代码

StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){

    Builtstring.Append(griditem).Append(",");

}
built = Builtstring.ToString();

3 个答案:

答案 0 :(得分:1)

使用FOR循环,然后检查该字符是否是某个所需nTH字符的因子。如果是这样,请添加额外的'/'。

        int x = 2; // your x
        StringBuilder builtstring = new StringBuilder();
        for (int i = 0; i < tobuild.Length; i++) 
        { 
            string item = tobuild[i];
            builtstring.Append(item).Append(",");
            if (i%x==0) { builtstring.Append("/"); }

        }
        string built = builtstring.ToString();

答案 1 :(得分:0)

您可以使用for循环遍历字符串数组,该循环提供索引 对于每次迭代,除了','之外,还要将当前字符串添加到StringBuilder,以防我们仍未到达数组中的最后一个字符串。
此外,在x字符串后添加'/'。我们可以知道我们使用% (modulus)运算符到达了x个字符串 请注意,我从index = 1开始循环。我这样做是因为带有任何正数的值为0的模运算符将产生0,这将在第一个单词之后添加'/'字符,这是我们不一定的想。

static void Insert(StringBuilder b, int x, string[] tobuild)
{
    for(var index = 1; index < tobuild.Length; ++index)
    {   
        b.Append(tobuild[index]);

        if(index != tobuild.Length -1)
        {
            b.Append(",");
        }

        if(0 == index % x)
        {
            b.Append("/");
        }
    }
}

答案 2 :(得分:0)

添加一个if语句来评估该角色,然后采取相应的行动。

StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
if(griditem == 'x') { Builtstring.Append(griditem).Append(@"/"); }
Builtstring.Append(griditem).Append(",");

}
built = Builtstring.ToString();

或者如果你真的想在斜杠前计算一定数量的字符,你可以这样做。

int count = 10;
int position = 0;
StringBuilder Builtstring = new StringBuilder();
foreach(string griditem in tobuild){
if(position == count) { Builtstring.Append(griditem).Append(@"/"); position = 0; }
else{Builtstring.Append(griditem).Append(","); position++;}}
built = Builtstring.ToString();