我开始用C#编程并有一个问题:
我有一串像abcdef123456789
这样的字符。但字符串太长,因此我想在第二个,第四个,第六个....符号后自动添加:
。
我该怎么做?
答案 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(":");
}