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

C#の可変文字列と不変文字列の違いは何ですか?


可変文字列

StringBuilderは、C#の可変文字列です。 StringBuilderを使用すると、文字列内の文字数を拡張できます。文字列は一度作成すると変更できませんが、StringBuilderは拡張できます。メモリ内に新しいオブジェクトは作成されません。

StringBuilderを設定-

StringBuilder str = new StringBuilder();

C#でStringBuilderを操作する方法を学ぶための例を見てみましょう-

using System;
using System.Text;

public class Program {
   public static void Main() {
      StringBuilder str = new StringBuilder("Web World!!",30);
      str.Replace("World", "Arena");

      Console.WriteLine(str);
   }
}

出力

Web Arena!!

不変の文字列

不変の文字列はC#の文字列です。毎回新しいメモリが作成されます。 StringBuildeとは異なり、文字列は一度作成すると変更できません。メモリ内に新しいオブジェクトは作成されません。

文字列を設定する-

String str = “tim”;

以下は、2つの文字列を比較している文字列の例です-

using System;

namespace StringApplication {

   class StringProg {

      static void Main(string[] args) {
         string str1 = "Steve";
         string str2 = "Ben";

         if (String.Compare(str1, str2) == 0) {
            Console.WriteLine(str1 + " and " + str2 + " are equal strings.");
         } else {
            Console.WriteLine(str1 + " and " + str2 + " are not equal strings.");
         }
         Console.ReadKey() ;
      }
   }
}

出力

Steve and Ben are not equal strings.

  1. 文字列とC#の文字列の違いは何ですか?

    StringはSystem.Stringを表しますが、stringはSystem.StringのC#のエイリアスです- 例 string str = "Welcome!"; 必須ではありませんが、通常、クラスを操作するときに文字列が使用されます。 string str = String.Format("Welcome! {0}!", user); 文字列はSystemのエイリアスであるため。弦。他のデータ型のエイリアスは-です 例 object: System.Object string: System.String bool: System.Bo

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

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