我想将逗号分隔的字符串格式化为没有空格的字符串,没有额外的逗号并删除c#中的空条目。字符串转换c#
string valueString = "sam, mike, , ,john , Tom and Jerry , "
和预期的结果是字符串数组与修整值如下
string formattedString = "sam, mike, john, Tom and Jerry"
逗号之后应该有一个空间( “”)转换成格式化的字符串
我想将逗号分隔的字符串格式化为没有空格的字符串,没有额外的逗号并删除c#中的空条目。字符串转换c#
string valueString = "sam, mike, , ,john , Tom and Jerry , "
和预期的结果是字符串数组与修整值如下
string formattedString = "sam, mike, john, Tom and Jerry"
逗号之后应该有一个空间( “”)转换成格式化的字符串
尝试这种情况:
string valueString = "sam, mike, , ,john , Tom and Jerry , ";
var nonEmpty = from s in valueString.Split(',')
where !String.IsNullOrWhiteSpace(s)
select s.Trim();
string formattedString = nonEmpty.Join(", ");
Console.WriteLine(formattedString);
而不是'!String.IsNullOrEmpty(s.Trim())' ,你可以使用'!string.IsNullOrWhiteSpace'。 –
你想要string.Join(“,”,nonEmpty),不加入IEnumerable
var sb = new StringBuilder();
foreach (string s in valueString.Split(new { "," }, StringSplitOptions.RemoveEmptyEntries))
{
sb.Append(s.Trim());
}
string result = sb.ToString();
试试这个
string valueString = "sam, mike, , ,john , Tom and Jerry , ";
var strOutput= from s in valueString.Split(',')
where !String.IsNullOrWhiteSpace(s.Trim())
select s.Trim();
string formatString = string.Join(", ", strOutput);
Console.WriteLine(formatString);
又一变,现在用正则表达式
string valueString = "sam, mike, , ,john , Tom and Jerry , ";
string formattedString = (new Regex(@"(\s*)(?<val>[^,]+)(\s*,)?").Replace(valueString,m=>{
var res = m.Groups["val"].Value.Trim();
return string.IsNullOrEmpty(res)? string.Empty : (res+", ");
})).Trim(", ".ToCharArray());
你已经问过这个问题在这里[拆分逗号分隔字符串也删除空格和删除空条目(http://stackoverflow.com/问题/ 20662124/split-a-comma-separated-string-also-remove-white-spaces-and-remove-empty-entries)并接受提供的解决方案 –