拆分并在C#中为字符串添加特定字符

时间:2014-09-26 09:36:41

标签: c# asp.net

我正在处理关键字模块,其中每个单词以,结尾并从字符串示例中删除空格如下:

如果字符串是

one man sitting with girl ,  baby girl ,   Smiling girl 

那么结果应该是

,one man sitting with girl,baby girl,Smiling girl,

我正在尝试这个

  string[] strArray = str15.Split(new char[] { ',', ';' });
        if (strArray.Length >= 1)
            {
                foreach (string str3 in strArray)
                {
                    if (str3 != string.Empty)
                    {
                        strr1 = strr1 + str3 + ",";

                    }
                }
            }

但无法从字符串中删除空格。

4 个答案:

答案 0 :(得分:4)

您要做的第一件事是使用Split()标记字符串。

string input = "some words   ,  not split , in a sensible    ,    way";   
string[] sections = input.Split(',');

这为您提供了一个由逗号分隔符分割的字符串数组,如下所示:

"some words   "
"  not split "
" in a sensible    "
"    way"

现在你要关掉那些空格。 string类有一个很小的函数叫Trim(),它从字符串的开头和结尾删除所有空格字符(空格,制表符等)。

for (int i = 0; i < sections.Length; i++)
    sections[i] = sections[i].Trim();

现在你有一个包含这样字符串的数组:

"some words"
"not split"
"in a sensible"
"way"

接下来,您想要使用逗号分隔符将它们连接起来。

string result = string.Join(",", sections);

这为您提供了以下内容:

"some words,not split,in a sensible,way"

最后,您可以在开头和结尾添加逗号:

result = "," + result + ",";

当然,这不是最干净的方法。这只是描述各个步骤的简单方法。您可以使用LINQ扩展将所有这些组合在一起:

string result = "," + string.Join(",", input.Split(',').Select(s => s.Trim())) + ",";

这将获取输入,将其拆分为逗号分隔符,然后对于列表中的每个项目执行lambda表达式s => s.Trim(),该表达式为每个元素选择字符串的修剪版本。然后将得到的可枚举数据传递回string.Join(),然后在开头和结尾添加两个逗号。它具有与上述步骤相同的功能,但是它是一行。

答案 1 :(得分:0)

这应该有效:

        string test = "one man sitting with girl ,  baby girl ,   Smiling girl";
        Regex regex = new Regex(@"\s+,\s+");

        string result = regex.Replace(test, ",");

答案 2 :(得分:0)

试试这个:

    var input = "one man sitting with girl ,  baby girl ,   Smiling girl";

    var output = string.Join(",", input.Split(',').Select(x => x.Trim()));

    output = string.Concat(",", output, ",");

答案 3 :(得分:-1)

Split你的字符串并通过删除空格来重新加入它:

var input = "one man sitting with girl ,  baby girl ,   Smiling girl";

var output = string.Join(",", input.Split(',').Select(x => x.Trim()));

// If you wanna  enclose it with commas
output = string.Format(",{0},",output);