C# 文字列: 文字列




 
C# では、string (または String) キーワードは System.String クラスのエイリアスであり、文字列を定義および操作するための一連のメソッドを提供します。これについては後で詳しく説明します。

 

1. 宣言と初期化文字列

を使用して文字列を作成できます

  • 文字列を String 型の変数に代入します。
  • String クラスのコンストラクターを使用します。
  • 文字列連結演算子+ ; を使用します。
  • プロパティを取得するか、文字列を返すメソッドを呼び出すことによって。
  • format メソッドを呼び出して、値またはオブジェクトを文字列表現に変換します。

例を示してみましょう:

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        { 
            // 普通的文字列を使用して文字列変数に値を割り当てる
            string name = "IT基礎";
            // 空で初期化された文字列を宣言する
            string str1 = "Hello:" + name;
            Console.WriteLine("str1 の値は:" + str1);

            // System.String.Emptyを使用して空の文字列を定義する
            string str2 = System.String.Empty;
            Console.WriteLine("str2 の値は:" + str2);

            // System.Stringクラスを使用する
            System.String url = "https://it-kiso.com";;
            Console.WriteLine("url の値は:" + url);

            // ローカル変数(つまり、メソッドの本体内)では、varを使用して変数を定義することができる
            var temp = "C#チュートリアル";
            Console.WriteLine("temp の値は:" + temp);

            // 定数文字列を定義する
            const string str3 = "これは定数文字列です";
            Console.WriteLine("str3 の値は:" + str3);

            // 文字列のコンストラクタを使用して文字列を定義する
            char[] letters = { 'H', 'e', 'l', 'l', 'o' };
            // string[] letters = { "C","言","語"};
            string message = new string(letters);
            Console.WriteLine("message の値は:" + message);
        }
    }
} 

2. String クラスのプロパティ

次の表に示すように、String クラスには 2 つのプロパティが提供されます。

属性 説明
Chars[Int32] 文字列内の指定された文字の位置を取得します
Length 現在の String オブジェクトの文字数 (文字列の長さ) を取得します。
3. String クラスのメソッド

String クラスには、文字列を操作するための多くのメソッドが用意されています。次の表に、String クラスでよく使用されるメソッドの一部を示します。

方法 説明
Clone() この String インスタンスへの参照を返します
Compare(String, String) 指定された 2 つの String オブジェクトを比較し、並べ替え順での相対位置を示す整数を返します。
CompareOrdinal(String, String) 各文字列内の文字を比較することにより、2 つの文字列が等しいかどうかを比較します。
CompareTo(String) ある文字列を別の文字列と比較します
Concat(String, String) 指定された 2 つの文字列を連結します
Contains(String) 文字列に 0 と 1 の文字列が含まれているかどうかを判断します
Copy(String) 文字列の値をコピーして別の文字列に代入する
CopyTo(Int32, Char[], Int32, Int32) 指定された数の文字を文字列から文字配列にコピーします。
EndsWith(String) 文字列が指定された文字列で終わるかどうかを判断するために使用されます
Equals(String, String) 2 つの文字列が等しいかどうかを確認する
Format(String, Object) 文字列を指定された文字列表現にフォーマットします
GetEnumerator() この文字列内の各文字を反復処理するオブジェクトを返します。
GetHashCode() この文字列のハッシュ コードを返します
GetType() 現在のインスタンスのタイプを取得します
GetTypeCode() 文字列の型コードを返します
IndexOf(String) 文字列内で最初に出現した文字のインデックスをゼロから返します。
Insert(Int32, String) 文字列内の指定された位置に別の文字列を挿入し、新しく形成された文字列を返します。
Intern(String) 指定された文字列のメモリアドレスを返します。
IsInterned(String) 指定された文字列のメモリアドレスを返します。
IsNormalized() この文字列が Unicode 標準に準拠しているかどうかを判断します
IsNullOrEmpty(String) 指定された文字列が空 (null) であるか空の文字列 (“”) であるかを判断します。
IsNullOrWhiteSpace(String) 指定された文字列が null、空、または空白文字のみで構成されているかどうかを判断します
Join(String, String[]) 文字列配列内のすべての要素を連結し、指定された区切り文字で各要素を区切ります。
LastIndexOf(Char) 文字列内で最後に出現する文字の位置を取得します
LastIndexOfAny(Char[]) 文字列内の 1 つ以上の文字が最後に出現する位置を取得します
Normalize() 元の文字列と同じ値を持つ新しい文字列を返しますが、そのバイナリ表現は Unicode 標準に準拠しています。
PadLeft(Int32) 指定された長さの新しい文字列を返します。新しい文字列は、元の文字列の左側にあるスペースを指定された長さになるまで右揃えで埋められます。
PadRight(Int32) 指定された長さの新しい文字列を返します。新しい文字列は、元の文字列の右側に指定された長さまでスペースが埋め込まれて左揃えされます。
Remove(Int32) 指定された長さの新しい文字列を返し、その長さを超える文字列の部分をすべて削除します。
Replace(String, String) 文字列内の文字を指定された文字に置き換え、新しく形成された文字列を返します。
Split(Char[]) 区切り文字に従って文字列を文字列の配列に分割します。
StartsWith(String) 文字列が指定された文字列で始まるかどうかを判断します
Substring(Int32) 指定した位置から文字列を抽出する
ToCharArray() 文字列内の文字を Unicode 文字の配列にコピーします。
ToLower() 文字列内の文字を小文字に変換します
ToLowerInvariant() 固定カルチャの大文字と小文字の規則を使用して文字列を小文字に変換します。
ToString() 他のデータ型を文字列型に変換する
ToUpper() 文字列内の文字を大文字に変換します
Trim() 文字列から先頭と末尾の空白文字を削除する
TrimEnd(Char[]) 文字列の末尾から空白文字を削除する
TrimStart(Char[]) 文字列の先頭から空白文字を削除する

上の表には、String クラスでよく使用されるいくつかのメソッドのみがリストされています。String クラスのすべてのメソッドの概要を理解するには、C# の公式ドキュメントを参照してください。

以下に、String クラスのメソッドの使用法を示すいくつかの例を示します。

[例] 2 つの文字列が同じかどうかを比較します。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        { 
            string str1 = "https://it-kiso.com/";
            string str2 = "it-kiso.com";
            if (String.Compare(str1, str2) == 0) {
                Console.WriteLine(str1 + " と " + str2 + " は同じです");
            } else {
                Console.WriteLine(str1 + " と " + str2 + " は異なります");
            }
            Console.ReadKey();
        }
    }
} 

[例] 文字列が別の文字列に含まれているかどうかを判定します。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        { 
            string str1 = "https://it-kiso.com/";
            string str2 = "kiso";
        
            if (str1.Contains(str2)) {
                Console.WriteLine(str1 + " 中に " + str2 + " が含まれています。");
            }else{
                Console.WriteLine(str1 + " 中に " + str2 + " が含まれていません。");
            }
            Console.ReadKey();
        }
    }
} 

【例】文字列から指定した長さの文字列を抽出します。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        { 
            string str = "https://it-kiso.com/";

            Console.WriteLine("元の文字列:" + str);
            string substr = str.Substring(7);
            Console.WriteLine("切り取られた文字列:" + substr);
        }
    }
} 

操作の結果は次のようになります。

元の文字列:https://it-kiso.com/
切り取られた文字列:it-kiso.com/

[例] 配列内の要素を文字列に結合します。

 using System;

namespace it-kiso.com
{
    class Demo
    {
        static void Main(string[] args) 
        { 
            string[] strarray = new string[]{
                "IT基礎",
                "https://it-kiso.com/",
                "C# チュートリアル"
            };

            string str = String.Join(" ", strarray);
            Console.WriteLine(str);
        }
    }
} 

操作の結果は次のようになります。

IT基礎 https://it-kiso.com/ C# チュートリアル

「C# 文字列: 文字列」についてわかりやすく解説!絶対に観るべきベスト2動画

【プログラミング講座(C#)】第11回 文字と文字列の違いについて【独り言】