次のような文字列があります。
var abc = "00345667";
var def = "002776766";
最初の 2 文字は常に " 00
" です。これらを " " に変更するにはどうすればよい01
ですか?
次のような文字列があります。
var abc = "00345667";
var def = "002776766";
最初の 2 文字は常に " 00
" です。これらを " " に変更するにはどうすればよい01
ですか?
Substring( )を使用できます。
var res = "01" + abc.Substring(2);
編集より多くの置換を行う場合のパフォーマンスに関する考慮事項。
置換するサブ文字列がさらにある場合は、StringBuilder を使用できます。この記事をお読みください。 Visual C# で文字列連結のパフォーマンスを向上させる方法
文字列連結 VS 文字列ビルダー
Visual C/C++ で strcat() よりも文字列連結を改善する 1 つの手法は、大きな文字配列をバッファーとして割り当て、文字列データをバッファーにコピーすることです。.NET Framework では、文字列は不変です。その場で変更することはできません。C# + 連結演算子は新しい文字列を作成し、大量のテキストを連結するとパフォーマンスが低下します。
ただし、.NET Framework には、文字列連結用に最適化された StringBuilder クラスが含まれています。C/C++ で文字配列を使用する場合と同じ利点が得られるだけでなく、(必要に応じて) バッファー サイズが自動的に拡大され、長さが追跡されます。この記事のサンプル アプリケーションは、StringBuilder クラスの使用方法を示し、パフォーマンスを連結と比較します。参照
StringBuilder を使用して、「002776766」を「012776766」に変更します。
StringBuilder sb = new StringBuilder(def);
sb[1] = '1';
def = sb.ToString();
Substringとstring.Formatを見てください。
string result = string.Format("01{0}", abc.Substring(2));
string result = Regex.Replace(abc, "^00", "01");
Regex.Replace()
名前空間で見つけることができるものでそれを行うことができますSystem.Text.RegularExpressions
。
abc = Regex.Replace(abc ,"^00","01");
|
|
|->^ depicts that start of the string
これを試して
"00".Concat(abc.Substring(2));
"00".Concat(def.Substring(2));
関数 Replace を Regex で使用できます。
like var abc = "00345667";
var newvar =Regex.Replace(abc, "^00", "01");