次のような文字列の中央の文字を置き換えるために使用できるものは次のとおり000
です010
。
はいの場合、パターンを取得できますか? それともString.Replace
メソッドだけですか?
情報: 文字列には常に数字があります。
質問を見ると、置換手順の背後に明確なロジックはありませんが、ある時点でどのシンボルが真ん中に表示されるべきかを知っていると仮定すると、
このように言って、拡張メソッドを作成できます
public static class Extension
{
public static string ReplaceMiddle(this string value, char charToPutIn)
{
var builder = new StringBuilder(value);
builder[value.Length/2] = charToPutIn;
return builder.ToString();
}
}
そして、これを次のように使用した後:
"hello".ReplaceMiddle('5')
次のような結果が生成されます。
"he5lo"
予想通り。
string s = "111000111";
string pattern = "000";
string replacement = "010";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(s, replacement);
lbloriginal.Text = s;
lblnew.Text = result;
3 文字の文字列のみの場合:
String number = "123";
String res = number[0] + "5" + number[2];
文字や部分文字列をインデックスで置き換えるのは少し面倒です。要約すると、
string newString = str.Substring(0,1) + newChar + str.Substring(2);
Replace メソッドを使用して部分文字列を別の文字列に置き換えることができるコンテンツでは、はるかに簡単です。
正規表現はオプションですが、それでもきれいではありません:
Regex.Replace(str, "^(.).(.)$", "${1}1$2"