【发布时间】:2011-10-19 07:18:00
【问题描述】:
我有一个动态字符串值,它可能包含这样的值
"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;
}
【问题讨论】:
-
对于 codereview.stackexchange.com.
-
逗号之间可以有多个单词吗?
-
@Rune,如果逗号中有多个单词,我想保留它,因为它正在考虑单词之间的单个空格。虽然我没有在我的帖子中提到这一点。非常感谢您的澄清。
-
您说您使用的是 .NET 2.0,但 C# 是什么版本? (C# 3.5 使用 .NET 2.0)
-
感谢大家分享美丽的代码。我有你们大家的一些好主意来解决这个问题。
标签: c# .net arrays string c#-2.0