使用C#进行字符串格

时间:2010-09-27 14:51:32

标签: c# .net string

有没有办法从字符串中删除每个特殊字符,如:

"\r\n               1802 S St Nw<br>\r\n                    Washington, DC 20009"

只需写下:

"1802 S St Nw, Washington, DC 20009"

6 个答案:

答案 0 :(得分:5)

删除特殊字符:

public static string ClearSpecialChars(this string input)
{
    foreach (var ch in new[] { "\r", "\n", "<br>", etc })
    {
        input = input.Replace(ch, String.Empty);
    }
    return input;
}

用单个空格替换所有双倍空格:

public static string ClearDoubleSpaces(this string input)
{
    while (input.Contains("  ")) // double
    {
        input = input.Replace("  ", " "); // with single
    }
    return input;
}

您也可以将两种方法分成一个方法:

public static string Clear(this string input)
{
    return input
        .ClearSpecialChars()
        .ClearDoubleSpaces()
        .Trim();
}

答案 1 :(得分:1)

有两种方法,可以使用RegEx,也可以使用String.Replace(...)

答案 2 :(得分:0)

使用Regex.Replace()方法,指定要删除的所有字符作为匹配的模式。

答案 3 :(得分:0)

你可以使用C#Trim()方法,看看这里:

http://msdn.microsoft.com/de-de/library/d4tt83f9%28VS.80%29.aspx

答案 4 :(得分:0)

System.Text.RegularExpressions.Regex.Replace("\"\\r\\n                                                            1802 S St Nw<br>\\r\\n                                                            Washington, DC 20009\"", 
 @"(<br>)*?\\r\\n\s+", "");

答案 5 :(得分:0)

也许是这样的,使用ASCII int值。假设所有html标签都将关闭。

public static class StringExtensions
{
    public static string Clean(this string str)
    {   
        string[] split = str.Split(' ');

        List<string> strings = new List<string>();
        foreach (string splitStr in split)
        { 
            if (splitStr.Length > 0)
            {
                StringBuilder sb = new StringBuilder();
                bool tagOpened = false;

                foreach (char c in splitStr)
                {
                    int iC = (int)c;
                    if (iC > 32)
                    {
                        if (iC == 60)
                            tagOpened = true;

                        if (!tagOpened)
                               sb.Append(c);

                        if (iC == 62)
                            tagOpened = false;
                    }
                }

                string result = sb.ToString();   

                if (result.Length > 0)
                    strings.Add(result);
            }
        }

        return string.Join(" ", strings.ToArray());
    }
}