C# 入門 & 実践 / C sharp

4-16. 文字列操作 - 2 - コピーと変換


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

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

コピー、連結、分割


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

            int ret = 0;
            
            // Copy : Char[] にコピー
            // char[] c0; // 初期化しない。
            // iroha.CopyTo(1, c0,0,3);
            // エラー:未割り当てのローカル変数が使用されました!

            char[] c1 = new char[3];
            // iroha の 1 文字目から , c1 の 0 から長さ分コピー
            iroha.CopyTo(1, c1, 0, c1.Length);

            for (int i = 0; i < c1.Length; i++)
            {
                Console.WriteLine(" CopyTo 1 : {0}", c1[i]);
            }

            // String.Copy : string にコピー
            aiu = String.Copy(iroha);
            iroha = "xyz";
            Console.WriteLine(" String.Copy 1 : {0}", aiu);

            //  = : 演算子これでも同じ
            aiu = iroha;
            Console.WriteLine(" String.Copy 2[ = ] : {0}", aiu);


            // Part2 

            iroha = "ABCいろはABC";
            aiu = "ABCあいう";
            
            // 新しい文字列
            string str3;

            // 部分コピー:iroha の3文字目からをコピー
            str3 = iroha.Substring(3);
            Console.WriteLine(" Substring : {0}", str3);

            // 2 文字だけコピー
            str3 = iroha.Substring(3,2);
            Console.WriteLine(" Substring2 : {0}", str3);

            // 文字列分解
            String[] str4 = iroha.Split('B');
            // 
            for (int i = 0; i < str4.Length; i++)
            {
                Console.WriteLine(" Split {0} : {1}", i,str4[i]);
            }

            // 文字連結!
            str3 = String.Concat(aiu,iroha);
            Console.WriteLine(" String.Concat : {0}", str3 );
            // + : + 演算子で連結
            str3 = aiu + iroha;
            Console.WriteLine(" String.[ + ] : {0}", str3);

            // Join : 文字列配列を連結!
            str3 = String.Join("+", str4);
            Console.WriteLine(" String.Join : {0}", str3);
        }

 CopyTo 1 : B
 CopyTo 1 : C
 CopyTo 1 : い
 String.Copy 1 : ABCいろはABC
 String.Copy 2[ = ] : xyz
 Substring : いろはABC
 Substring2 : いろ
 Split 0 : A
 Split 1 : CいろはA
 Split 2 : C
 String.Concat : ABCあいうABCいろはABC
 String.[ + ] : ABCあいうABCいろはABC
 String.Join : A+CいろはA+C


文字列変更



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

            // Insert : 挿入
            string str3 = iroha.Insert( 3, " |Insert| " );
            Console.WriteLine(" Insert : {0}", str3 );

            // Replase : char 置換
            str3 = iroha.Replace( 'C','X' );
            Console.WriteLine(" Replace : {0}", str3);
    
            // Remove
            str3 = iroha.Remove(5);
            Console.WriteLine(" Remove : {0}", str3);

            // PadLeft , PadRight
            str3 = iroha.PadLeft(3);
            Console.WriteLine(" PadLeft : {0}", str3); // 元が3より長いので全てコピーされます。
            str3 = iroha.PadLeft(20);
            Console.WriteLine(" PadLeft : {0}", str3); // 20 文字無いので、残りはスペースで埋められます。
            str3 = iroha.PadLeft(20, '-');
            Console.WriteLine(" PadLeft : {0}", str3); // '-'を指定したので '-'で埋められます。
            str3 = iroha.PadRight(20, '-');
            Console.WriteLine(" PadRight : {0}", str3); // 右側が埋められます。
            
            // Trim : スペース除去!
            string str4 = "  HELLO!  ";
            str3 = str4.Trim();
            Console.WriteLine(" Trim : |{0}|", str3); // 両側のスペースが削られます!
            str3 = str4.TrimEnd();
            Console.WriteLine(" TrimEnd : |{0}|", str3); // 右のスペースが削られます!
            str3 = str4.TrimStart();
            Console.WriteLine(" TrimStart : |{0}|", str3); // 左のスペースが削られます!
        }
 Insert : ABC |Insert| いろはABC
 Replace : ABXいろはABX
 Remove : ABCいろ
 PadLeft : ABCいろはABC
 PadLeft :            ABCいろはABC
 PadLeft : -----------ABCいろはABC
 PadRight : ABCいろはABC-----------
 Trim : |HELLO!|
 TrimEnd : |  HELLO!|
 TrimStart : |HELLO!  |
まぁ知っていれば損はないって感じですね。使うときに調べれば十分でしょう。




4-15. 文字列操作 - 1 - 比較 インデックス « 4. C# 入門 Level 2 » 4-17. 文字列操作 - 3 - フォーマット, sprintf


C# 入門 & 実践 / C sharp