如何在c#中自动添加符号?

时间:2015-02-22 09:19:14

标签: c#

我开始用C#编程并有一个问题:

我有一串像abcdef123456789这样的字符。但字符串太长,因此我想在第二个,第四个,第六个....符号后自动添加:

我该怎么做?

3 个答案:

答案 0 :(得分:1)

没有内置方法可以做类似的事情。你只需要通过循环字符串将分隔符放在那里。

你可以遍历字符并将它们放在StringBuilder中,在每个其他字符上添加一个冒号:

string input = "abcdef123456789";

StringBuilder builder = new StringBuilder();
int cnt = 0;
foreach (char c in input) {
  if (cnt == 2) {
    builder.Append(':');
    cnt = 0;
  }
  builder.Append(c);
  cnt++;
}
string output = builder.ToString();

答案 1 :(得分:1)

您可以尝试这种方法。我试图让它尽可能地可读,所以希望它对你有意义。

var s = "abcdef123456789";

var charsChanged = new List<char>();

for (var i = 0; i < s.Length; i++)
{
    charsChanged.Add(s[i]);

    var evenCharacter = i % 2 != 0;
    var atEndOfString = i == s.Length - 1;

    if (evenCharacter && !atEndOfString)
    {
        charsChanged.Add(':');
    }
}

var updatedString = string.Concat(charsChanged));

updatedString将等于ab:cd:ef:12:34:56:78:9

这种方法利用模数运算符(%)来确定我们是否处于偶数或奇数字符。有关更多示例,请查看this out

答案 2 :(得分:0)

您可以使用StringBuilder并执行以下操作:

string sourceStr = "123456789";
StringBuilder s = new StringBuilder();
foreach(char c in sourceStr){
    s.append(c);
    s.append(":");
}