为什么C#制表符和逗号分隔的拆分不同
本文关键字:拆分 分隔 制表符 为什么 | 更新日期: 2023-09-27 18:30:59
我有一个有 10 列的 Excel 电子表格。 并非所有单元格都包含数据。 如果我将其保存为制表符分隔的文件并使用 Split()(如下所示),我将得到与将其保存为逗号分隔文件时不同的结果,它将返回 IndexOutOfBounds 异常。
如果我做这样的事情:
String tabSepartor = "'t";
lineTokens = inputLine.Split(tabSepartor.ToCharArray());
int lineTokensLength = lineTokens.Length;
在制表符分隔的文件中,我将得到长度为 8 或 10 的结果,但如果我使用逗号分隔符执行此操作,它将始终显示 10。
String commaSeparator = ",";
lineTokens = inputLine.Split(commaSeparator.ToCharArray());
如何让制表符分隔的 Split() 与逗号分隔的拆分相同?
编辑(根据要求):这是逗号分隔线:
Info,Info,1/1,select,Yes,Info,Info,Info,,
这是制表符分隔线:
Info Info 1/1 select Yes Info Info Info
分隔文件仍然可以在实际数据中包含分隔符
First,Second,Third,"Fourth, then more",Fifth
因此,您应该使用 .NET 的 TextFieldParser 类。它比Split
慢,但可以正确解析您的 CSV。