拆分逗号分隔的字符串,同时删除空格和空条目
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("|") 替换 "|"以上是关于拆分逗号分隔的字符串,同时删除空格和空条目的主要内容,如果未能解决你的问题,请参考以下文章