C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのStringとStringBuilderの違い


C#の文字列

文字列はC#で不変です。つまり、作成後に文字列を変更することはできません。操作を実行すると、メモリ内に文字列型の新しいオブジェクトが作成されます。

string str1 = "Welcome!";
// creates a new string instance
str1 += "Hello";
str1 += "World”;
を作成します

C#のStringBuilder

StringBuilderはC#で変更可能です。これは、文字列に対して操作が実行された場合、毎回新しいインスタンスが作成されるわけではないことを意味します。これにより、文字列とは異なり、メモリ内に新しいスペースが作成されることはありません。

StringBuilder str1 = new StringBuilder("");
str1.Append("Welcome!");
str1.Append("Hello World!");
string str2 = str1.ToString();

  1. Javaの文字列バッファと文字列ビルダーの違い

    文字列バッファとStringBuilderはどちらも可変クラスであり、文字列の反転、文字列の連結などの文字列オブジェクトの操作を実行できます。文字列の新しいオブジェクトを作成せずに文字列を変更できます。文字列バッファはスレッドセーフですが、文字列ビルダーはスレッドセーフではありません。したがって、文字列バッファよりも高速です。また、string concat +演算子は、内部でStringBufferまたはStringBuilderクラスを使用します。違いは次のとおりです。 Sr。いいえ。 キー 文字列バッファ 文字列ビルダー 1 基本 StringBufferは、J

  2. Pythonの文字列とバイト文字列の違いは何ですか?

    文字列は文字のシーケンスです。これらは抽象的な概念であり、ディスクに直接保存することはできません。バイト文字列はバイトのシーケンスであり、ディスクに保存できるものです。それらの間のマッピングはエンコーディングです-これらはかなりたくさんあります(そして無限に多くが可能です)-そして、異なるエンコーディングが同じバイトをマッピングする可能性があるため、変換を行うために特定の場合にどちらが適用されるかを知る必要があります別の文字列に。たとえば、同じバイト文字列は、2つの異なるエンコーディングで2つの異なる文字列を表すことができます。 例 >>> b'\xcf\x84o\x