c# split string in 2. 逐个字母

标签 c# string split

我需要将字符串分成 2 个,每个变量一个字母。

示例:字符串 =“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] 相同的项目。

关于c# split string in 2. 逐个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46165887/

相关文章:

java 分割字符串并只保留特定单词之后的所有内容

Opencv gpu::split 无法正常工作

c# - 动画wpf列表框的选定项目

string - 在 VB 6.0 中替换 ' with ' 时发生堆栈溢出

c++ - 如何将 IHTMLDocument2 ->get_body ->get_innerHTML 变成小写字符串?

python - 想要比较两列中的字符串并在 python pandas 中的同一行中引入相等的值

python - 正则表达式选择除方括号 [] 中的分号之外的每个分号

c# - 我可以在 EntityFramework Core 中配置拦截器吗?

c# - 如何获取服务器上打开的 HTTP 连接总数?

c# - 如何使用 C# 以编程方式更改 Windows 7 LAN 设置