文字列操作がさらに便利になるELStringクラスのサンプルコード

文字列に関する型クラスです。文字列を操作するためのプロパティやメソッドが利用できます。

概要

文字列の様々な”操作”ができるようになると、表現の幅が広がり非常に便利です。文字列の一部を取得したり、文字数を数えたり、文字列同士を比較したり・・。ELStringを使えば、様々な文字列操作を手軽に行なえます。

よく使うプロパティ/メソッド

1. 文字列の情報

命令 目的 戻り値の型
Length 対象文字数を取得 int

2. 文字列のチェック

命令 目的 戻り値の型
StartsWith( strA) 対象文字列がstrAから始まっているかチェック bool
EndsWith( strA ) 対象文字列がstrAで終わっているかチェック bool
IndexOf( strA) 対象文字列内で最初にstrAが現れる位置を、先頭からの文字数で取得 int
LastIndex( strA) 対象文字列内で最後にstrAが現れる位置を、先頭からの文字数で取得 int

3. 文字列同士の比較

命令 目的 戻り値の型
Equals( strA ) 対象文字列とstrAが等しいかどうかチェック bool
CompareTo( strA ) 対象文字列とstrA順序(辞書順)を比較(対象文字列 > strA なら「1」) int
ELString.Compare( strA, strB ) strAとstrBの順序(辞書順)を比較(strA > strB なら「1」) int

4. 文字列の取得

命令 目的 戻り値の型
Chars( index ) 対象文字列の先頭から数えてindex番目にある文字を取得 string
Substring( startIndex ) 対象文字列の先頭から数えてstartIndex番目から、最後までの文字列を取得 string
Substring( startIndex, count ) 対象文字列の先頭から数えてstartIndex番目から、count個の文字列を取得 string

5. 文字列の加工

命令 目的 戻り値の型
Insert( startIndex, strA ) 対象文字列の先頭から数えてstartIndex番目に文字列strAを挿入 string
Remove( startIndex ) 対象文字列の先頭から数えてstartIndex番目以降を削除 string
Remove( startIndex, count ) 対象文字列の先頭から数えてstartIndex番目からcount個の文字列を削除 string
Replace( oldStr, newStr) 対象文字列内にある文字列oldStrをnewStrに置き換え string
Trim() 対象文字列の前後にある半角スペースを削除 string

6. 文字列の変換

命令 目的 戻り値の型
ToUpper() 対象文字列をすべて大文字に変換 string
ToLower() 対象文字列をすべて小文字に変換 string

7. 文字列の分離と結合

命令 目的 戻り値の型
Split( separator ) 対象文字列を文字separatorで分割し、Vectorに格納する Vector
ELString.Concat( strA, strB, .. ) strA以降の文字列をすべてつないだ文字列を作成する string
ELString.Join( strSeparator, strA, strB, .. ) strA以降の文字列をすべて、文字strSeparatorでつないだ文字列を作成する string
ELString.Format( strFormat, strA, strB, .. ) strFormatに指定したフォーマットで文字列を作成する string

EasyLanguageサンプルコード

インジケーターを新規作成して以下のコードを貼り付け、チャートに設定ください。結果が印刷ログに表示されます。

using elsystem;
using elsystem.collections;

Vars:
    string strOutput( "" ),
    string strText1( "" ),
    string strText2( "" ),
    string strText3( "" ),
    string strText4( "" ),
    Vector vecChar( NULL ),
    int intValue1( 0 ),
    int intValue2( 0 ),
    int intValue3( 0 );
    
Once ( LastBarOnChartEx ) Begin
    ClearPrintLog;
    
    //----------------------------------------
    // 1. 文字列の情報
    //----------------------------------------
    print( "--[1. 文字列の情報]-------------------------" );
    
    strText1 = "ABCDEFG";
    strText2 = "あいうえおかきくけこさしすせそ";
    
    strOutput = ELString.Format(
        "「{0}」の文字数:{1}" + NewLine +
        "「{2}」の文字数:{3}",
        strText1,
        strText1.Length,
        strText2,
        strText2.Length
    );
    print( strOutput );
    
    //----------------------------------------
    // 2. 文字列のチェック
    //----------------------------------------
    print();
    print( "--[2. 文字列のチェック]-------------------------" );
    
    strText1 = "ABCDEFG";
    strText2 = "あいうえおかきくけこさしすせそ";
    
    strOutput = ELString.Format(
        "[StartsWith] {0} {1} {2} {3}",
        strText1.StartsWith( "A" ),
        strText1.StartsWith( "D" ),
        strText2.StartsWith( "あ" ),
        strText2.StartsWith( "か" )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[EndsWith] {0} {1} {2} {3}",
        strText1.EndsWith( "G" ),
        strText1.EndsWith( "D" ),
        strText2.EndsWith( "そ" ),
        strText2.EndsWith( "ん" )
    );
    print( strOutput );
    
    strText3 = "ABCDEABCDEABCDE";
    
    strOutput = ELString.Format(
        "[IndexOf] {0} {1} {2}",
        strText3.IndexOf( "A" ),
        strText3.IndexOf( "D" ),
        strText3.IndexOf( "X" )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[LastIndexOf] {0} {1} {2}",
        strText3.LastIndexOf( "A" ),
        strText3.LastIndexOf( "D" ),
        strText3.LastIndexOf( "X" )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[Contains] {0} {1}",
        strText3.Contains( "CD" ),
        strText3.Contains( "XY" )
    );
    print( strOutput );
    
    //----------------------------------------
    // 3. 文字列同士の比較
    //----------------------------------------
    print();
    print( "--[3. 文字列同士の比較]-------------------------" );
    
    strText1 = "ABCDE";
    strText2 = "VWXYZ";
    strText3 = "ABCDE";
    
    strOutput = ELString.Format(
        "[Equals] {0} {1}",
        strText1.equals( strText2 ),
        strText1.equals( strText3 )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[Compare] {0} {1} {2}",
        ELString.Compare( strText1, strText2 ),
        ELString.Compare( strText1, strText3 ),
        ELString.Compare( strText2, strText3 )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[CompareTo] {0} {1} {2}",
        strText1.CompareTo( strText2 ),
        strText1.CompareTo( strText3 ),
        strText2.CompareTo( strText3 )
    );
    print( strOutput );
    
    //----------------------------------------
    // 4. 文字列の取得
    //----------------------------------------
    print();
    print( "--[4. 文字列の取得]-------------------------" );
    
    strText1 = "ABCDEFG";
    strText2 = "あいうえおかきくけこさしすせそ";
    
    strOutput = ELString.Format(
        "[Chars] {0} {1} {2} {3}",
        strText1.Chars[0],
        strText1.Chars[5],
        strText2.Chars[3],
        strText2.Chars[10]
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[Substring] " + NewLine +
        "{0}" + NewLine +
        "{1}" + NewLine +
        "{2}" + NewLine +
        "{3}",
        strText1.Substring( 0, 3 ),
        strText1.Substring( 5 ),
        strText2.Substring( 3, 6 ),
        strText2.Substring( 10 )
    );
    print( strOutput );
    
    //----------------------------------------
    // 5. 文字列の加工
    //----------------------------------------
    print();
    print( "--[5. 文字列の加工]-------------------------" );
    
    strText1 = "ABCDEFG";
    strText2 = "あいうえおかきくけこさしすせそ";
    
    strOutput = ELString.Format(
        "[Insert]" + NewLine +
        "{0}" + NewLine +
        "{1}",
        strText1.Insert( 5, "XYZ" ),
        strText2.Insert( 3, "**【テスト】**" )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[Remove]" + NewLine +
        "{0}" + NewLine +
        "{1}",
        strText1.Remove( 2, 3 ),
        strText2.Remove( 8 )
    );
    print( strOutput );
    
    strOutput = ELString.Format(
        "[Replace]" + NewLine +
        "{0}" + NewLine +
        "{1}",
        strText1.Replace( "CD", "PQ" ),
        strText2.Replace( "くけこ", "###" )
    );
    print( strOutput );
    
    strText3 = "  ABCDE     ";
    
    strOutput = ELString.Format(
        "[Trim]" + NewLine +
        "{0}",
        strText1.Trim()
    );
    print( strOutput );
    
    //----------------------------------------
    // 6. 文字列の変換
    //----------------------------------------
    print();
    print( "--[6. 文字列の変換]-------------------------" );
    
    strText1 = "ABcdeFGhiJKL";
    
    strOutput = ELString.Format(
        "[ToUpper] {0}" + NewLine +
        "[ToLower] {1}",
        strText1.ToUpper(),
        strText1.ToLower()
    );
    print( strOutput );
    
    //----------------------------------------
    // 7. 文字列の分離と結合
    //----------------------------------------
    print();
    print( "--[7. 文字列の分離と結合]-------------------------" );
    
    strText1 = "1321,1570,1357,8698,9984";
    
    vecChar = strText1.Split( "," );
    strOutput = ELString.Format(
        "[Split] {0}",
        vecChar.Items[3] astype string
    );
    print( strOutput );
    
    strText2 = ELString.Concat(
        "マネックス",
        "SBI",
        "楽天",
        "松井",
        "auカブコム"
    );
    strOutput = ELString.Format(
        "[Concat] {0}",
        strText2
    );
    print( strOutput );
    
    strText3 = ELString.Join(
        ",",
        "マネックス",
        "SBI",
        "楽天",
        "松井",
        "auカブコム"
    );
    strOutput = ELString.Format(
        "[Join] {0}",
        strText3
    );
    print( strOutput );
    
    intValue1 = 100;
    intValue2 = 500;
    intValue3 = 3000;
    strOutput = ELString.Format(
        "[Format]" + NewLine +
        "その1:{0}" + NewLine +
        "その2:{1}" + NewLine +
        "その3:{2}",
        intValue1,
        intValue2,
        intValue3
    );
    print( strOutput );
        
End;

{ ** Copyright © Trade Tech All Rights Reserved ** }

表示例

本クラスの使いどころ

ELStringを使った文字列操作ができるようになると、チャートやレーダースクリーンに表示させる文字や、外部ファイルに出力したい内容などを自由自在に加工できるようになります。

高度なプログラムを作っていく上では必須の知識となりますので、ぜひ上のコードにある各変数(strText1など)を好きなものに変えてみながら、動作を確認してみてください。

クラス一覧ページに戻る

「株式投資 x IT」の
オンラインコミュニティに参加しませんか?

2019年5月頃から、トレステやEasyLanguageを中心とした株式投資に役立つ最新ツールやITスキルに関する情報が手に入るオンラインコミュニティを運営しています。

トレステやEasyLanguageの豊富な小ネタやサンプルコードが手に入り
チャットツール(Slack)でいつでもトレステやEasyLanguageの質問ができ
毎月開催している勉強会の収録動画がすべて視聴できて
トレステ以外にも株式投資に役立つ最新のツールやITスキルを学べる

オンライン動画講座
時系列分析用サンプルプログラム
OOELサンプルプログラム
Slackでいつでも質問可能

このように、「コンテンツ見放題」「チャット交流」という構成で、僕がが運営しているコミュニティになります。

最近トレステやEasyLanguageを始めたという方から、経験豊富な投資家・プログラマーの方まで、様々な人が集う場となっております。興味のある方はぜひ、ご参加ください。

トレードテック・オンラインの詳細を見る