【发布时间】:2012-09-10 04:08:20
【问题描述】:
通常,当您拆分 Hi,One,Two 之类的字符串时,您将返回 3 个分隔项。
但是,当您需要在最后一项 Hi,One,Two, 上添加额外的逗号时,您将获得 4 项。
我将一个字符串拆分成一个字符串数组,发现数组项长度不均匀,因为字符串末尾有额外的分隔符:
string test = "[one]\t\t\t[two]\t\t\t";
string[] testArr = test.Split(new char[] { '\t' }, StringSplitOptions.None);
结果:
[0] = "[一个]" 有没有什么办法不用为除最后一个段之外的所有段添加第四个逗号? 编辑: 当然,我可以轻松使用此代码: 并得到理想的结果: [0] = "[一个]" 出于这个问题之外的目的,我希望我可以有相等的尾随分隔符,而不是调整字符串以使最后一个字符串的尾随逗号减少。
[1] = ""
[2] = ""
[3] = “[二]”
[4] = ""
[5] = ""
[6] = ""
string test = "[one]\t\t\t\t[two]\t\t\t";
string[] testArr = test.Split(new char[] { '\t' }, StringSplitOptions.None);
[1] = ""
[2] = ""
[3] = ""
[4] = “[二]”
[5] = ""
[6] = ""
[7] = ""
【问题讨论】:
-
您希望忽略所有空条目吗?您可以将 StringSplitOptions.None 更改为 StringSplitOptions.RemoveEmptyEntries msdn.microsoft.com/en-us/library/system.stringsplitoptions.aspx
-
不,但是谢谢...在我的问题中,这就是为什么我明确指定接受 StringSplitOptions 的
String.Split重载。我不能使用 RemoveEmptyEntries,因为我需要尾随逗号进行另一个操作/计算,我想我将不得不放入第四个逗号,除非有人知道其他技巧。嗯,也许我应该除以[,然后计算逗号。 -
我不是反对者,但问题并没有真正的意义——如果那里没有逗号,你为什么要期待第四个元素?为什么那里没有逗号?这个字符串是从哪里来的?只需用另一个逗号构建它...?