我遇到了一个程序问题。我必须读取一个文件*.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),我必须对输入的任何文本和给定的分隔符执行此操作。
希望你能帮助我。
答案 0 :(得分:2)
在某个分隔符上拆分字符串时,该分隔符不是结果部分的一部分。如果你想看到“a”,你需要手动添加它(在每个部分执行最后一个)。
顺便说一句:ToCharArray
不会产生你想要的效果:如果你输入“或”作为分隔符,那么“r”和“o”都是独立的分隔符,所以无论它们是否分裂它们在一起(字符串将分成单个“o”并在“ro”或“或”上分割为double。)
答案 1 :(得分:1)
分割操作后,您不会将delimater作为返回值的一部分。 你可以有额外的逻辑来添加如下:
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));
}
}