我有一个动态字符串值,它可能包含这样的值
"Apple ,Banana, , , , Mango ,Strawberry , "
我想像这样过滤这个字符串
"Apple,Banana,Mango,Strawberry".
我已经尝试使用以下代码并且它有效。
有没有更好的方法可以在 C#(.NET 2.0)中实现相同的目的?
/// <summary>
/// Convert "Comma Separated String" to "Comma Separated String"
/// </summary>
/// <param name="strWithComma">String having values separated by comma</param>
/// <returns>String separated with comma</returns>
private String CommaSeparatedString(String strWithComma)
{
String rtn = String.Empty;
List<String> newList= new List<string>();
if (String.IsNullOrEmpty(strWithComma))
{
return rtn;
}
String[] strArray = strWithComma.Split(",".ToCharArray());
if (strArray == null || strArray.Length == 0)
{
return rtn;
}
String tmpStr = String.Empty;
String separator=String.Empty;
foreach (String s in strArray)
{
if (!String.IsNullOrEmpty(s))
{
tmpStr =s.Replace(Environment.NewLine, String.Empty);
tmpStr = tmpStr.Trim();
if (!String.IsNullOrEmpty(tmpStr))
{
newList.Add(tmpStr);
}
}
}
if (newList != null && newList.Count > 0)
{
rtn = String.Join(",", newList.ToArray());
}
return rtn;
}
最佳答案
你也可以使用正则表达式:
string str = @"Apple ,,Banana, , , , Mango ,Strawberry , ";
string result = Regex.Replace(str, @"(\s*,\s*)+", ",").TrimEnd(',');
关于c# - 在 C# 中过滤逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7817784/