我有字符串变量如下如何在.NET中替换第一次出现的子字符串?
string pctSign = "\0\0\0";
我想更换前两个字符“%”
i.e. Final o/p:- pctSign="%\0\0";
如何使用与string.replace做到这一点?
我有字符串变量如下如何在.NET中替换第一次出现的子字符串?
string pctSign = "\0\0\0";
我想更换前两个字符“%”
i.e. Final o/p:- pctSign="%\0\0";
如何使用与string.replace做到这一点?
// 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, "%");
如果你绝对要用户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);
是否有任何方法可以使用Replace来编写此代码? –
@AmolKolekar对于'String.Replace()'有两个重载,它们都替换**给定字符串或char的所有**出现。字符串不提供只替换特定事件的“替换”方法。 –
好的..我知道了..非常感谢你... –
string s = pctSign.Substring(2, pctSign.Length);
s = "%" + s;
试试这个:
var pctSign = "\0\0\0";
var result = string.Format("%{0}", pctSign.Substring(2));
谢谢你的答案.. –
你的意思是只有前两个那么
pctSign = "%"+pctSign.substring(2);
这将删除所有出现的'/ 0',因为这是'pctSign.substring(0,2)'计算的结果。 –
@DennisTraub您正确 – dnyan86
尝试使用'Substring'(可能与'IndexOf'结合)。 –
可能的重复[如何替换.NET中的第一个*字符串实例?](http://stackoverflow.com/questions/141045/how-do-i-replace-the-first-instance-of -a-string-in-net) –