我的代码中有这个字符串:
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 是相同的,它不会使用制表符分隔符拆分此字符串。它为什么会发生?
答案 0 :(得分:1)
你确定你的字符串有制表符吗?尝试使用Split()
它将按标签和空格分割:
foreach (var lineItem in line.Split())
{
}
答案 1 :(得分:0)
它不起作用的原因是因为tabs
中的string test
不是标签 - 请参阅:
第一行是我从MS Excel生成的。使用正则表达式正确表示任何空白字符(即使对于Unicode转义序列)
Regex regex = new Regex(@"\s");
string[] bits = regex.Split(line);