我需要将我的字符串分成2个,每个变量一个字母。
示例:string =“ ABCDEFGHIJ”
名称1:ACEGI
名称2:BDFHJ
到目前为止,我已经完成了:
var builderM = new StringBuilder();
var builderK = new StringBuilder();
for (int i = 0; i < s.Length; i++)
{
builderM.Append(s[i]);
builderK.Append(s[i++]);
}
txtM.Text = builderM.ToString();
txtK.Text = builderK.ToString();
但是它在2中显示相同的文本。
最佳答案
您应该使用++i
而不是i++
for (int i = 0; i < s.Length; i++)
{
builderM.Append(s[i]);
if(i + 1 < s.Length) // to prevent IOR exception when count is odd.
builderK.Append(s[++i]); // pre increment.
}
原因是
i++
是后递增的。这意味着在i
表达式为s[i++]
提供相同项之后,s[i]
会递增。