文字列の反転

ABBBBabc-ABCXYZ
ZYXCBA-cbaBBBBA
ABabc-ABCXYZ

string(文字列)の反転と連続する文字を一個にまとめます。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. string str で文字列を定義します。
    定義した文字列を反転して表示します。
    次に連続する 'B' を一個にまとめます。
    // C# Console Mode String Program    前田 稔
    using System;
    
    class console
    {
        public static int Main()
        {
            string  str= "ABBBBabc-ABCXYZ";
            string  ws;
            System.Console.WriteLine(str);
    
            char[]  ary_c= str.ToCharArray();
            Array.Reverse(ary_c);
            System.Console.WriteLine(new string(ary_c));
    
            ws = str.Replace("BB", "B");
            while(str.Length>ws.Length)
            {
                str = ws;
                ws = str.Replace("BB", "B");
            }
            System.Console.WriteLine(ws);
            System.Console.ReadLine();
            return 0;
        }
    }
    
  2. このプログラムの実行環境は Windows10 & Visual Studio 2017 です。
    テンプレートのプロジェクトは Hello C# で上記の実行環境でも問題なく動くようです。
    文字列検索の実行結果です。
    最初に定義した文字列をそのまま印字しています。
    次に文字列を反転して印字します。
    最後に連続する 'B' を一個にまとめて印字します。
    ABBBBabc-ABCXYZ
    ZYXCBA-cbaBBBBA
    ABabc-ABCXYZ
    
  3. 文字列 str を反転して印字します。
    配列を反転する便利な関数があるので、文字列を char の配列に変換して反転してから再び文字列に直します。
        char[]  ary_c= str.ToCharArray();
        Array.Reverse(ary_c);
        System.Console.WriteLine(new string(ary_c));
    
  4. 連続する 'B' を一個にまとめる処理ですが .NET Framework では RegEx で正規表現が使えるようなのですが Windows10 では使えません。
    そこで while() 文を使ってループでプログラミングしてみました。
    Console.ReadLine(); は印字されたメッセージの確認です。
        ws = str.Replace("BB", "B");
        while(str.Length>ws.Length)
        {
            str = ws;
            ws = str.Replace("BB", "B");
        }
        System.Console.WriteLine(ws);
        System.Console.ReadLine();
        return 0;
    }
    

[Next Chapter ↓]Command Line 引数
[Previous Chapter ↑]文字列の検索と置換

超初心者のプログラム入門(C# Frame Work)