拆分逗号分隔的字符串,同时删除空格和空条目

Posted

技术标签:

【中文标题】拆分逗号分隔的字符串,同时删除空格和空条目【英文标题】:Split a comma separated string while removing whitespace and empty entries 【发布时间】:2014-01-06 20:47:20 【问题描述】:

我想将逗号分隔的字符串转换为字符串数组,并删除空格和空条目。例如,给定输入:

string valueString = "sam, mike,   , ,john  , Tom and jerry  , ";

预期的结果将是以下值(当然是修剪过的):

sam
mike
john
Tom and Jerry

我尝试了以下代码行来修剪值,但这无法删除“空”条目:

valueString.Split(',').Select(sValue => sValue.Trim()).ToArray();

修剪输入和清理可能导致该过程的条目清空的最佳方法是什么?

【问题讨论】:

你有什么问题?你收到错误了吗? 【参考方案1】:

将 Trim 与 StringSplitOptions.RemoveEmptyEntries 一起使用不起作用,因为 " " 不被视为空条目。您需要进行正常拆分,然后修剪每个项目,然后过滤掉空字符串。

valueString.Split(',')
    .Select(x => x.Trim())
    .Where(x => !string.IsNullOrWhiteSpace(x))
    .ToArray();

【讨论】:

应该是new [] ',' @SergeyBerezovskiy:不,不应该(仅适用于字符串)。【参考方案2】:

基于 Anthony 的回答,这也会将其转换回逗号分隔的字符串:

valueString = string.Join(",", valueString.Split(',')
    .Select(x => x.Trim())
    .Where(x => !string.IsNullOrWhiteSpace(x))
    .ToArray())

【讨论】:

【参考方案3】:

试试这个,它适用于我的....

item.Split("|", StringSplitOptions.RemoveEmptyEntries)

【讨论】:

这会产生多个错误,因为参数需要一个字符串数组而不是 "|"。此外,它也没有修剪字符串。请验证 尝试用 CChar("|") 替换 "|"

以上是关于拆分逗号分隔的字符串,同时删除空格和空条目的主要内容,如果未能解决你的问题,请参考以下文章