Форматирование строки с использованием C # - PullRequest
1 голос
/ 27 сентября 2010

Есть ли способ удалить каждый специальный символ из строки вроде:

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

И просто написать это как:

"1802 S St Nw, Washington, DC 20009"

Ответы [ 6 ]

5 голосов
/ 27 сентября 2010

Чтобы удалить специальные символы:

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 голос
/ 27 сентября 2010

двумя способами, вы можете использовать RegEx или String.Replace (...)

0 голосов
/ 27 сентября 2010

Может быть, что-то вроде этого, используя значения 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());
    }
}
0 голосов
/ 27 сентября 2010
System.Text.RegularExpressions.Regex.Replace("\"\\r\\n                                                            1802 S St Nw<br>\\r\\n                                                            Washington, DC 20009\"", 
 @"(<br>)*?\\r\\n\s+", "");
0 голосов
/ 27 сентября 2010

Вы можете использовать метод C # Trim (), смотрите здесь:

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

0 голосов
/ 27 сентября 2010

Используйте метод Regex.Replace () , указав все символы, которые вы хотите удалить в качестве шаблона для сопоставления.

...