C# 入門 & 実践 / C sharp

4-15. 文字列操作 - 1 - 比較 インデックス


文字列比較
・比較処理には、Compare、CompareOrdinal、CompareTo、Equals、EndsWith、StartsWith の各メソッドを使用。

インデックス
・文字列内の部分文字列や Unicode 文字のインデックスを取得するには、IndexOf、IndexOfAny、LastIndexOf、LastIndexOfAny の各メソッドを使用。

文字列コピー
・文字列や部分文字列を別の文字列または Char 型の配列にコピーするには、Copy と CopyTo を使用。
・元の文字列の一部分から 1 つ以上の新しい文字列を作成するには、Substring メソッドと Split メソッドを使用。1 つ以上の部分文字列から新しい文字列を作成するには、Concat メソッドと Join メソッドを使用。

文字列変更
・文字列の全体または一部を変更するには、Insert、Replace、Remove、PadLeft、PadRight、Trim、TrimEnd、および TrimStart を使用。
・文字列内の Unicode 文字の大文字/小文字を変更するには、ToLower、ToLowerInvariant、ToUpper、ToUpperInvariant の各メソッドを使用。

・文字列中に設定された書式項目のプレースホルダを、対応する数値、日付、時刻、または列挙値のテキスト表現に置き換えるには、Format を使用。
・文字列内の Char オブジェクトの数を取得するには、Length プロパティを使用。文字列内の実際の Char オブジェクトにアクセスするには、Chars を使用。
・文字列が特定の正規形に正規化されているかを判定するには、IsNormalized メソッドを使用。特定の正規形に正規化された文字列を作成するには、Normalize メソッドを使用。

とこんなことが出来るようですね!
幾つか見ていきましょう。

文字列比較


なんか3種類あって・・・なんでしょう?
返り値が違うのとstaticかどうかですね。

        static void Main()
        {
            string iroha = "ABCいろは";
            string aiu = "ABCあいう";

            int ret = 0;
            
            // String クラスの メソッドを利用
            // Compare() : 文字列比較
            ret = String.Compare(iroha, aiu);
            Console.WriteLine(" Compare : {0}", ret);

            // Compare() : 文字列比較!
            ret = aiu.CompareTo(iroha);
            Console.WriteLine(" CompareTo : {0}", ret);

            // Equals() : 文字列比較!
            bool ret_bool = iroha.Equals(aiu);
            Console.WriteLine(" Equals : {0}", ret_bool);

            // StartWith() : 開始文字列を比較
            ret_bool = iroha.StartsWith("ABC");
            Console.WriteLine(" StartsWith : {0}", ret_bool);

            // EndWith() : 終了文字列を比較
            ret_bool = iroha.EndsWith("いろは");
            Console.WriteLine(" EndsWith : {0}", ret_bool);
        }
Compare : 1
CompareTo : -1
Equals : False
StartsWith : True
EndsWith : True


インデックス


        static void Main()
        {
            string iroha = "ABCいろはABC";
            string aiu = "ABCあいう";

            int ret = 0;
            
            // IndexOf : 何文字目?
            ret = iroha.IndexOf('い');
            Console.WriteLine(" IndexOf : {0}", ret);

            // インデクサで char を返す。
            char x = iroha[ret];
            Console.WriteLine(" iroha[{0}] : {1}", ret, x);

            // IndexOfAny() : char配列から始まるのは何文字目?
            char[] c = {'B','C'} ; 
            ret = iroha.IndexOfAny(c);
            Console.WriteLine(" IndexOfAny : {0}", ret);

            // LastIndexOf : 最後に出てくるのは何文字目?
            ret = iroha.LastIndexOf("B");
            Console.WriteLine(" LastIndexOf : {0}", ret);

        }

IndexOf : 3
iroha[3] : い
IndexOfAny : 1
LastIndexOf : 7

とこんな感じで。




4-14. 文字列 « 4. C# 入門 Level 2 » 4-16. 文字列操作 - 2 - コピーと変換


C# 入門 & 実践 / C sharp