learn use c stringbuilder class
このチュートリアルでは、C#StringBuilderクラスと、Append、Clear、Remove、Insert、Replace、Equalsなどのメソッドを例を挙げて詳しく説明します。
C#のStringBuilderクラスは、反復的な文字列操作の使用が必要な場合に文字列を処理します。
文字列は不変です。つまり、変更することはできません。特定の文字列が作成されると、それを変更することはできません。文字列を変更または更新すると、メモリ内に新しい文字列オブジェクトが作成されます。明らかなように、同じ文字列に対して繰り返し操作を実行すると、この動作によってパフォーマンスが低下します。
Windows10でjarファイルを開く
=> ここで詳細なC#トレーニングチュートリアルを確認してください
C#のStringBuilderクラスは、この問題を解決することを目的としています。これにより、メモリの動的割り当てが可能になります。つまり、文字列の文字数を拡張できます。新しいメモリオブジェクトを作成するのではなく、メモリサイズを動的に増やして新しい文字を含めます。
学習内容:
C#StringBuilderを初期化する方法は?
StringBuilderは、他のクラスと同様に初期化されます。 StringBuilderクラスはSystem名前空間に存在します。インスタンス化するには、テキストをクラスにインポートする必要があります。
初期化の例:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
上記のプログラムの出力は次のとおりです。
こんにちは
C#StringBuilderメソッド
StringBuilderクラスは、文字列操作を処理するためのいくつかの異なるメソッドも提供します。
#1)追加方法
名前が示すように、現在の文字列ビルダーの最後に文字または文字列のセットを追加します。同じ文字列に対して複数の文字列連結を実行する必要がある場合、パフォーマンスの向上に非常に役立ちます。
例:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); strgBldr.Append('World'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
上記のプログラムの出力は次のようになります。
こんにちは
こんにちは世界
上記のプログラムでは、最初にstringBuilderを介して文字列を定義しました。次に、Append()を使用して、別の文字列を前の文字列と連結しました。追加する前にコード行を実行すると、「Hello」として出力されますが、追加して結果を出力すると、「Hello World」、つまり前の文字列と追加された文字列が出力されます。
#2)明確な方法
このメソッドは、現在のStringBuilderからすべての文字を削除します。空の文字列を取得する必要があるシナリオや、文字列変数からデータをクリアする必要があるシナリオで非常に役立ちます。
例:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); strgBldr.Append('World'); Console.WriteLine(strgBldr); strgBldr.Clear(); Console.WriteLine(strgBldr); Console.ReadLine(); } }
上記のプログラムの出力は次のとおりです。
Javaでグラフを実装する方法
こんにちは
こんにちは世界
StringBuilderでクリア操作を実行してから、結果の文字列を出力しようとすると。黒の文字列値を取得します。上記のプログラムでは、値をStringBuilderに追加し、その値をコンソールに出力しました。
次に、StringBuilderからすべての値を削除するクリア操作を実行しました。その後、印刷しようとすると、空白の値が出力されました。
#3)メソッドの削除
削除はクリアに似ていますが、少し違いがあります。また、StringBuilderから文字を削除しますが、StringBuilderに存在するすべての文字を削除するclearとは異なり、指定された範囲内で削除します。シナリオで、プログラムが文字列全体ではなく特定の文字セットを文字列から削除する必要がある場合は常に、削除が使用されます。
例:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); strgBldr.Append('World'); Console.WriteLine(strgBldr); strgBldr.Remove(2, 3); Console.WriteLine(strgBldr); Console.ReadLine(); } }
上記のプログラムの出力は次のようになります。
こんにちは
こんにちは世界
彼の世界
Removeは2つのパラメータを受け入れます。最初のパラメータは開始インデックス、つまり削除を開始する文字のインデックスを示します。 2番目のパラメーターは、長さ、つまり削除する文字の長さを表す整数も受け入れます。
上記のプログラムでは、開始インデックスを2、長さを3として指定しました。そのため、インデックス2から文字を削除し始めました。つまり、He’l’loで、長さを3として指定したため、プログラムは「l」から3文字を削除したため、「l lo」が削除されました。
#4)挿入方法
文字列内の指定されたインデックスに1つ以上の文字を挿入します。また、ユーザーは文字列または文字をStringBuilderに挿入する必要がある回数を指定できます。これは、特定の文字列の特定の位置に文字を挿入する必要がある場合に使用されます。
例:
class Program { publicstaticvoid Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello World'); Console.WriteLine(strgBldr); strgBldr.Insert(2, '_insert_'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
上記のプログラムの出力は次のようになります。
c ++二重リンクリスト
こんにちは世界
He_insert_llo World
上記のプログラムでは、Insertメソッドを使用して特定のインデックスに文字を挿入します。 insertメソッドは2つのパラメーターを受け入れます。最初のパラメーターは、文字が挿入されるインデックスを示す整数です。 2番目のパラメーターは、ユーザーが指定されたインデックスに挿入する文字を受け入れます。
#5)置換方法
replaceメソッドは、StringBuilderで指定されたすべての文字列を、ユーザーが指定した文字列または文字に置き換えます。特定のインデックスの特定の文字を置き換えます。一部の文字を別の文字に置き換える必要があるシナリオで使用できます。
例:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello World'); Console.WriteLine(strgBldr); strgBldr.Replace('Hello', 'Hi'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
上記のプログラムの出力は次のとおりです。
こんにちは世界
こんにちは、世界よ
上記のプログラムでは、Replaceメソッドを使用して「Hello」を「Hi」に置き換えました。 replaceメソッドは、2つのパラメーターを受け入れます。最初のパラメーターは、置き換える文字列または文字であり、2番目のパラメーターは、置き換える文字列または文字です。
#6)等しい方法
名前が示すように、1つのStringBuilderが他のStringBuilderと等しいかどうかを検証します。 StringBuilderをパラメーターとして受け入れ、達成された等式条件に基づいてブール値を返します。このメソッドは、2つのStringBuilderの等価条件を検証する場合に非常に役立ちます。
例:
class Program { public static void Main(string() args) { StringBuilder strgBldr1 = new StringBuilder('Hello World'); StringBuilder strgBldr2 = new StringBuilder('World'); StringBuilder strgBldr3 = new StringBuilder('Hello World'); Console.WriteLine(strgBldr1.Equals(strgBldr2)); Console.WriteLine(strgBldr1.Equals(strgBldr3)); Console.ReadLine(); } }
上記のプログラムの出力は次のようになります。
誤り
本当
上記のプログラムでは、1番目と3番目のStringBuilderオブジェクトは同じです。つまり、同じ値を持っています。したがって、最初に2番目と等しくすると、false値が返されますが、1番目と3番目が等しいと等しくなると、trueが返されます。
結論
C#のStringBuilderクラスは、文字列に対して複数の操作が実行されるパフォーマンスを向上させるために使用されます。
文字列が変更されるたびに不変であるため、メモリ内に別の文字列オブジェクトが作成されます。 StringBuilderはそれを減らすことを目的としています。
これにより、ユーザーは動的メモリを割り当てることにより、同じオブジェクトに対して変更を実行できます。これは、より多くのデータを収容する必要がある場合、メモリサイズを増やすことができることを意味します。