字符串替换C#

时间:2015-02-08 15:17:47

标签: c# .net

希望你能给我一些启示:

我有这个var

string TestString = "KESRNAN FOREST S BV";

我想替换单独的S,所以我尝试使用以下

public static string FixStreetName(string streetName)
    {
        string result = "";
        string stringToCheck = streetName.ToUpper();
    //   result = stringToCheck.Replace(StreetDirection(stringToCheck), "").Replace(StreetType(stringToCheck),"").Trim();

        result = stringToCheck.Replace("S", "").Replace("BV", "").Trim();

        return result;
    }

但这正在取代该字符串上的所有S.任何想法?

5 个答案:

答案 0 :(得分:3)

使用正则表达式

  

\ B'/ P>

表示字边界。这是C# Pad

的示例
string x = "KESRNAN FOREST S BV";

var result = System.Text.RegularExpressions.Regex.Replace(x, @"\bS\b", "");

Console.WriteLine(result);

答案 1 :(得分:1)

如果您可以轻松识别某些“分隔符”字符,则一种可能性是 1. 使用string.Split将输入字符串拆分为多个部分;然后 2。选择你想要的部分,最后 3。使用string.Join将它们“粘合”在一起:

var partsToExclude = new string[] { "S", "BV" };

/* 1. */ var parts = stringToCheck.Split(' ');
/* 2. */ var selectedParts = parts.Where(part => !partsToExclude.Contains(part));
/* 3. */ return string.Join(" ", selectedParts.ToArray());

答案 2 :(得分:0)

使用正则表达式:

string input = "S KESRNAN FOREST S BV S";
string result = Regex.Replace(input, @"\b(S)", "");

答案 3 :(得分:0)

正如你所看到的那样,S在空间" "之前。换句话说,这个字符串"S "想要替换它。

试试这个:

        string TestString = "KESRNAN FOREST S BV";
        string replacement = TestString.Replace("S ", "");

答案 4 :(得分:0)

另一种做你想做的事情:

using System;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            string testString = "S KESRNAN S FOREST BV S";
            // deleting S in middle of string
            for (int i = 1; i < testString.Length-1; i++)
            {
                if (testString[i]=='S'&&testString[i-1]==' '&&testString[i+1]==' ')
                    testString=testString.Remove(i,2);
            }
            // deleting S in the begining of string
            if (testString.StartsWith("S "))
                testString = testString.Remove(0, 2);
            // deleting S at the end of string
            if (testString.EndsWith(" S"))
                testString = testString.Remove(testString.Length-2, 2);
            Console.WriteLine(testString);
        }
    }
}