C#文法 – 文字列

C#入門

 
 
■C#の文字列
 
C#のstringは.NETのSystem.Stringクラスと同一のため、System.Stringクラスの関数とプロパティを使うことができます。
C#の文字列はImmutableなので一度設定したら変更できません。
※一度設定したら変更できない型をImmutable Typeと言います。値を何度でも変更できる型をMutable Typeと言います。

namespace TestApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   // 文字列(string)型変数
   string str1 = “C#”;
   string str2 = “Programming Study”;

   // 文字型(char)変数
   char chr1 = ‘A’;
   char chr2 = ‘B’;

   // 文字列の結合
   string str3 = str1 + “ ” + str2;
   Console.WriteLine(“String: {0}”, str3);

   // 文字列の切り出し
   string str3substr = str3.Substring(1, 3);
   Console.WriteLine(“Substring: {0}”, str3substr);
  }
 }
}

 
 
■C#の文字列、文字、文字の配列
 
C#の文字列(string)は文字(char)の集合体です。文字列の各文字は添え字(square bracket)を使って参照できます。
 
文字の配列を文字列に変換するためには下記のようにnew stringで配列を引数に設定します。

namespace TestApplication
{
 class Program
 {
  static void Main(string[] args)
  {   
   string str = “My Test Applicatino”;

   // 文字列を配列の添え字で各文字を参照
   for (int i = 0; i < str.Length; i++)

   {
    Console.WriteLine(“{0}: {1}”, i, str[i]);
   }

   // 文字列を文字型の配列に変換
   string str2 = “Hello”;
   char[] chars = str2.ToCharArray();

   for (int i = 0; i < chars.Length; i++)

   {
    Console.WriteLine(chars[i]);
   }

   // 文字型の配列を文字列に変換
   char[] chars2 = { ‘A’, ‘B’, ‘C’, ‘D’, ‘E’ };
   str = new string(chars2);

   Console.WriteLine(str);

   // 文字型の演算
   char char1 = ‘A’;
   char char2 = (char)(char1 + 3);
   Console.WriteLine(char2); // D を出力
  }
 }
}

 
 
■C#のStringBuilderクラス
 
文字列関連のもう一つ大事なクラスは、System.Text.StringBuilderです。
StringクラスはImmutableなので、文字列更新が多い場合は適してないです。
しかし、MutableタイプのStringBuilderクラスは文字列更新が多い場合によく使われます。このクラスは、別のメモリを生成・解放せず、バファを利用して文字列の更新処理をします。
特に、繰り返し処理内で文字列の結合などを行う場合は、stringではなくStringBuilderを使います。

namespace TestApplication
{
 class Program
 {
  static void Main(string[] args)
  {
   StringBuilder strB = new StringBuilder();
   for (int i = 0; i <= 5; i++)
   {
    strB.Append(i.ToString());
    strB.Append(System.Environment.NewLine);
   }
   string str = strB.ToString();

   Console.WriteLine(str);
  }
 }
}

 
 
 
 

当サイトは広告を含めています。広告のクリックによる収益は全て当サイトの管理、維持、コンテンツ製作に使われます。

 

Team ladybird
タイトルとURLをコピーしました