C#.NET - 如何使用制表符分隔符拆分字符串?

时间:2014-12-16 09:35:13

标签: c# .net string tabs split

我的代码中有这个字符串:

string test = @"aaaaa   aaaaa   aaaaa   bbbb    ttttt   tttttt
33333   44444   777777   77777   88888   8888    8888    88888   88888
wwwww   wwwww   wwwwww   wwwww   wwwww   wwwwww";

这是我的代码用新行字符和制表符分割字符串。

foreach (var line in test.Split(new string[] { Environment.NewLine }, StringSplitOptions.None))
{
    foreach (var lineItem in line.Split('\t'))
    {                        
    }
}

在第一个循环的第一个循环变量是" aaaaa aaaaa aaaaa bbbb ttttt tttttt" 这是正确的,但是在秒循环中第一次交互变量 lineItem 是相同的,它不会使用制表符分隔符拆分此字符串。它为什么会发生?

2 个答案:

答案 0 :(得分:1)

你确定你的字符串有制表符吗?尝试使用Split()它将按标签和空格分割:

foreach (var lineItem in line.Split())
{                        
}

答案 1 :(得分:0)

它不起作用的原因是因为tabs中的string test不是标签 - 请参阅:

enter image description here 第一行是我从MS Excel生成的。使用正则表达式正确表示任何空白字符(即使对于Unicode转义序列)

Regex regex = new Regex(@"\s");
string[] bits = regex.Split(line);