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

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("|") 替换 "|"

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

使用正则表达式拆分字符串时跳过逗号分隔字符串中的空格

Python:按分隔符列表拆分字符串

拆分(分解)熊猫数据框字符串条目以分隔行

java怎么以空格,英文逗号和句号拆分一个字符串,一个逗号我会,同时三个该怎么写

拆分逗号分隔的字符串(带有一些 ' \ [ 字符)

拆分分隔字符串并删除转义序列[重复]