如何替换.NET中第一次出现的子字符串?

Amo*_*kar 0 c# asp.net string replace

我有如下字符串变量

 string pctSign = "\0\0\0";
Run Code Online (Sandbox Code Playgroud)

我想用“%”替换前两个字符

i.e. Final o/p:- pctSign="%\0\0";
Run Code Online (Sandbox Code Playgroud)

如何用String.Replace做到这一点?

Den*_*aub 5

// Option 1
var result = "%" + pctSign.Remove(0, 2);

// Option 2
var result = "%" + pctSign.Substring(2);

// Option 3
var regex = new Regex("^\\0");
var result = regex.Replace(pctSign, "%");
Run Code Online (Sandbox Code Playgroud)

如果您绝对希望成为用户,String.Replace()则可以编写自己的扩展方法:

public static class StringExtension
{
    public static String Replace(this string self, 
                                      string oldString, string newString, 
                                      bool firstOccurrenceOnly = false)
    {
        if ( !firstOccurrenceOnly )
            return self.Replace(oldString, newString);

        int pos = self.IndexOf(oldString);
        if ( pos < 0 )
            return self;

        return self.Substring(0, pos) + newString 
               + self.Substring(pos + oldString.Length);
    }
}

// Usage:
var result = pctSign.Replace("/0", "%", true);
Run Code Online (Sandbox Code Playgroud)