1

我的程序有问题。我必须读取一个文件*.txt并按给定字符拆分它,例如:该文件包含以下内容:

rotbrow
yabector
gamerue

因此,当我插入给定的分隔符时a,它应该像这样分隔行:

rotbrow
ya
bector
ga
merue

但它在没有 a 的情况下像这样打印它们:

rotbrow
ya
bector
ga
merue

这是我正在使用的代码:

foreach (string line in  File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ArchivoaSeparar.txt"))
{
    string[] parts = line.Split(cadenaTextBox.Text.ToCharArray());

    foreach (string item in parts)
    {
        listBox1.Items.Add(item);
    }
}

我不明白为什么不显示给定的分隔符(las 示例中的 a),我必须使用输入的任何文本和给定的分隔符来执行此操作。

希望你能帮助我解决这个问题。

4

2 回答 2

2

当您在某个分隔符上拆分字符串时,该分隔符不是结果部分的一部分。如果你想看到那个“a”,你需要手动重新添加它(在每个部分上,除了最后一个)。

顺便说一句:这ToCharArray不会产生您可能想要的效果:如果您输入“or”作为分隔符,那么“r”和“o”都是独立的分隔符,因此无论它们是否在一起,它们都会分开(字符串会分开在单个“o”上并在“ro”或“or”上拆分双倍。)

于 2013-11-09T08:21:38.957 回答
1

拆分操作后,您不会将分隔符作为返回值的一部分。你可以有额外的逻辑来添加如下:

foreach (string line in File.ReadAllLines(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\ArchivoaSeparar.txt"))
            {
                String checkItem = cadenaTextBox.Text.ToString();
                string[] parts = line.Split(checkItem.ToCharArray());

                foreach (string item in parts)
                {
                    listBox1.Items.Add((line.Contains(checkItem) ? item + checkItem : item));
                }
            }
于 2013-11-09T09:19:14.597 回答