我有字符串變量如下如何在.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) –