【第48回】ロータス博士のWinActor塾~文字列操作Ⅴ
この文字列シリーズももう5連続か・・・
今日は結合をと思っていたのじゃが、その前に分割を学ばねばな。
ということで予定を変更して「文字列分割」についてお教えしよう。
前回の記事はこちら。
今回は文字列分割かあ。できることがどんどん増えていきますね。
この前「ワシの呼吸!壱ノ型!」って言いながらそのノード置いてましたよね。
う・・・見られてたのか・・・。
いや、なんとなくテンション上げるためにな。
シナリオ作成中に独り言がでちゃうというか・・・。すまん。
分割に使えるライブラリ
分割に使えるライブラリはいくつかあるのじゃが
今回は例を出しながらささっと紹介してしまおうと思うぞ。
それでは早速、いってみよう。
ライブラリの格納場所について
今回利用するライブラリは全て以下の階層にあります
NTTATライブラリ > 07_文字列操作 > 02_切り出し・分割
文字列を前後に分割
このライブラリは指定の文字列(区切り文字列)からみて前後に文字列を分割し、それぞれ変数に格納します。
例えば、分割元文字列に「りんごとみかん」区切り文字列に「と」を指定し
前・後にそれぞれ結果格納用の変数を用意すると以下のようになります。
前という変数に「りんご」、後という変数に「みかん」が格納され前後に分割できました。
区切文字列が複数存在する場合は、左からみて最初にマッチした文字列を中心として分割されます。
複数存在した場合の例を見てみましょう。区切文字列は「、」です。
区切文字列は2箇所ありますが、左側のものが優先され、それ以降ものは無視されます。
もし、3つの文字列に分割したい場合は次のライブラリを使用します。
文字列を3つに分割
このライブラリを使用することで、先ほどの問題は解決します。
イヌ、サル、キジの例をもとに変数とプロパティを設定すると次のようになります。
プロパティ
変数
ここまで準備ができたら実行してみましょう。
実行後の変数の中は次のような結果になります。
実行結果
文字列分割
いよいよ今回のメインじゃな。
上で紹介したような分割は左から順に処理していくタイプじゃったが
このライブラリは全部バラバラにしたうえで好きな部分を拾えるのじゃ。
では使い方を見てみよう。
プロパティにあるようにこのライブラリでは「インデックス」を指定する必要があります。
インデックスとは分割後の文字列に割り振られる番号のことです。
以下の例を見てみましょう。
このような文字列を「,」(カンマ)で分割しましょう。区切文字列を「,」とします。
すると「,」で区切られた文字列がそれぞれバラバラになります。
このとき、左から順に番号が割り振られます。これがインデックスです。
インデックスを設定することで、分割後に任意の文字列を取得することが可能になります。
プロパティのインデックスを「3」にすれば、「Wed」が取得できます。
取得結果は「分割文字列」に指定した変数に格納されます。
「分割サイズ」には、分割された文字列の個数を格納するための変数を指定します。
上の例では7つに分割されたので分割サイズには7が格納されることになります。
どうじゃ?バラバラにして一部が欲しいときは重宝するライブラリなのじゃ。
逆に、最初の「,」だけで区切って、後ろの「Mon,Tue...Sat」が全部欲しい場合は
「文字列を前後に分割」を使っても良いかもしれんな。
この辺りは使い分けが重要になってくるから、しっかり全部使えるようになろう。
やっと僕のしゃべるターンがきましたね!
分割サイズって設定しないといけないみたいですけど
何に使えるんですか?
使わない場合は変数だけ割り当てて放っておいても良いし
ライブラリを編集してプロパティから消してもよいぞ。使い道はあるんじゃがな。
うーむ、道場ではないがひとつ問題を出してみようかのう。
え!余計な事言わなきゃよかった・・・
練習問題
先ほどの例にあった曜日の文字列(Sun,Mon,Tue,Wed,Thu,Fri,Sat)を「文字列分割」ライブラリで分割し
Excelシートに1行ずつ転記するシナリオを作成してみましょう。
次のように転記できればOKじゃ!
力技でできなくもないが、なるべくノード数を少なくしてスマートなシナリオになるよう心がけよう。
ポイントは「分割サイズ」じゃ!回答は次回!
みなさんも是非挑戦してみてください!
そして僕にこっそり答えを教えて!
・・・
関連記事こちらの記事も合わせてどうぞ。
2024.11.05
【第105回】ロータス博士のWinActor塾~新しい画像マッチング画面
2024.09.27
【第104回】ロータス博士のWinActor塾~ガイド利用シナリオ(作成編)
2024.09.10