スポンサーリンク

UiPathデータ操作編② 文字列操作方法

文字列操作でよく使うStringメソッド

前回 UiPathデータ操作編① 複数のデータ操作について

UiPathで文字列操作を行うときによく使うStringメソッドについて以下の8つの使い方について説明します。

  • Replace
  • IndexOf
  • Remove
  • Insert
  • Trim
  • Split
  • Contains
  • StartWith/EndWith
スポンサーリンク

Replace

Replaceメソッドは文字列を置換したいときに使用します。指定した文字列は全て置換したい文字列に変更されます。最初に見つかった文字列だけを置換するということは出来ません。

まずは、UiPathのMain画面でシーケンスを配置して、変数一覧でtextという変数を作成します。
変数の型はString型で、既定値には"あいうえお"と入力してください。

次に、シーケンス内に代入1行を書き込みを配置します。
どちらもアクティビティ検索欄に入力するか、お気に入りから配置してください。

配置が完了したら、代入text = text.Replace("あいう", "アイウ")となるように入力してください。
1行を書き込みにはtextと入力してください。

それでは実行してみます。

“あいうえお”が”アイウえお”に変更されて表示されました。
このようにReplace("指定する文字列", "置換する文字列")で文字列を置換することが出来ます。

IndexOf

IndexOfメソッドは対象の文字列内に指定した文字列が最初に見つかった位置(インデックス)を取得できます。指定した文字列が見つからなったときは-1が返されます。
※インデックスは0からスタートします。詳しくは下記の表を参考にしてください。

インデックス番号01234
文字(あいうえお)

まずは、新しく変数一覧で、indexという変数を作成します。
変数の型はInt32型に変更してください。既定値は今回入力しません。

先ほど配置した代入index = text.IndexOf("う")となるように変更します。
1行を書き込みindex.ToStringに変更します。

それでは実行してみます。

“2”が表示されました。
このように”あいうえお”で”う”が何番目にあるかを取得できます。
インデックスは0からスタートするので”2″と表示されます。

Remove

Removeメソッドは文字列内の指定した位置(インデックス)から指定した文字数を削除します。文字数を指定しない場合は、指定した位置から最後まで削除します。また、指定した文字数が文字列の範囲を超えたときはエラーになります。
※インデックスは0からスタートします。

まず、代入text = text.Remove(0,3)となるように変更します。
1行を書き込みtextに変更します。

それでは実行してみます。

“えお”が表示されました。
今回はインデックスを”0″、文字数を”3″と指定しているため、先頭から3文字削除され”えお”が残ります。

次は代入text = text.Remove(3)となるように変更します。

それでは実行してみます。

“あいう”と表示されました。
このように、文字数を指定しない場合はインデックスから最後まで削除します。

また、RemoveメソッドではIndexOfを使用してインデックスや文字数を指定することも可能です。
変数一覧でtextの既定値を"2019年12月"に変更します。
次に代入text = text.Remove(text.IndexOf("年"))となるように変更します。

それでは実行してみます。

“2019”と表示されました。
IndexOfメソッドで”年”を探して見つけた位置から最後まで削除します。
“年”を残して”2019年”と表示したい場合はtext.Remove(text.IndexOf("年") + 1)と最後に+ 1を付けると”年”よりも後ろから最後まで削除されます。

次に代入text = text.Remove(0, text.IndexOf("年") + 1)となるように変更します。

それでは実行してみます。

“12月”と表示されました。
“2019年12月”で”年”のインデックスは4となります。(以下の表を参考にしてください。)

インデックス番号01234567
文字(2019年12月)201912

text.Remove(0, text.IndexOf("年") + 1)では先頭から5文字(4 + 1)を削除します。
結果として”12月”が残ります。

Insert

Insertメソッドは指定した位置(インデックス)に指定した文字列を挿入できます。
インデックスが文字列の範囲を超えていた場合はエラーが起こります。

まず、代入text = text.Insert(5, "度")となるように変更します。

それでは実行してみます。

“2019年度12月”と表示されました。
“1”のインデックスが5になるため、”1″の場所に”度”を挿入しています。
インデックス部分をIndexOfメソッドを使用して、text.Insert(text.IndexOf("年") + 1,"度")に変更しても同じ結果が表示されます。

Trim

Trimメソッドは指定した文字列の前後の空白を削除します。
※文字列の間にある空白は削除できません。文字列の間の空白を削除する場合はReplaceメソッドを使用します。

まず、変数一覧でtextの既定値を" 2019年 12月 "に変更します。
先頭に全角空白、最後に半角空白、2019年と12月の間に半角空白を入力します。

次に代入text = text.Trimとなるように変更します。

それでは実行してみます。

“2019年 12月”と表示されました。
最後の半角空白が削除されたか確認する場合は”2019年 12月”をクリックし、[Ctrl + C]を押すか右クリックしてからコピーを選択してください。
その後にテキストファイルなどに貼り付けて確認できます。

文字列の間にある空白を削除するには、Replaceメソッドを使用してtext.Trim.Replace(" ","")となるように変更します。

それでは実行してみます。

このように前後の空白を削除したい場合はTrimメソッドを使用し、文字列の間にある空白を削除する場合はReplaceメソッドを使用します。

Split

Splitメソッドは文字列を指定した文字で分割します。分割した文字列は配列に格納されます。

まず、変数一覧でtextの既定値を"2019/12/25"に変更し、新しくtext_arrayという変数を作成し、変数の型でArray ofString型を選択します。

次に代入text_array = text.Split("/"c)となるように変更します。

繰り返し(コレクションの各要素)代入の下に配置します。
アクティビティ検索欄に「繰り返し」と入力するか
ワークフロー-> コントロール -> 繰り返し(コレクションの各要素)から配置してください。

配置が完了したら、「コレクション」にtext_arrayと入力し、1行を書き込みitem.ToStringに変更して繰り返し(コレクションの各要素)本体に移動させます。

それでは実行してみます。

  • “2019”
  • “12”
  • “25”

と表示されました。
“2019/12/25″をtext.Split("/"c)に設定した”/”で区切り配列としてtext_arrayに格納されています。
繰り返し(コレクションの各要素)を使用しなくても以下で表示することが出来ます。

インデックス番号012
文字(”2019/12/25″)“2019”“12”“25”
1行を書き込みtext_array(0)text_array(1)text_array(2)

改行で区切りたいときはtext.Split(CChar(vbCrLf)) と設定します。
テキストファイルを読み込むとStiringの変数に全行分が格納されるため1行ずつ取得したいときに上記の方法で改行で区切り配列に格納します。

Contains

Containsメソッドは文字列に指定した文字列が含まれていかチェックします。含まれている場合はTrueを返し、含まれていない場合はFalseを返します。

まず、変数一覧でstatusという変数を作成し、変数の型をBoolean型に設定します。

1行を書き込みの上に代入1行を書き込みを配置します。
配置が完了したら、代入にstatus = item.ToString.Contains("1")となるように入力し、1行を書き込みstatus.ToStringと入力します。

それでは実行してみます。

このように、”1″が含まれる文字列はTrueが表示されます。
条件分岐や繰り返し処理の条件に設定するときに使用することが多いです。

実際に、条件分岐で”1″が含まれる文字列だけ表示してみます。
先ほど配置した代入1行を書き込みを削除して、本体内に条件分岐を配置します。

配置が完了したら、「Condition」にitem.ToString.Contains("1")と入力し、1行を書き込み条件分岐Then内に移動します。

それでは実行してみます。

このように条件に設定することで”1″が含まれる文字列のみ表示されました。

StartsWith/EndsWith

StartsWithは指定した文字列で始まるかをチェックします。指定した文字列で始まる場合はTrueを返し、指定した文字列で始まらない場合はFalseを返します。
EndsWithは指定した文字列で終わるかをチェックします。指定した文字列で終わる場合はTrueを返し、指定した文字列で終わらない場合はFalseを返します。

“2”で始まる文字列のみを表示してみます。
条件分岐の「Contains」をitem.ToString.StartsWith("2")となるように変更します。

それでは実行してみます。

“2”で始まる文字列のみ表示されました。

次は”2″で終わる文字列のみ表示します。
条件分岐の「Contains」をitem.ToString.EndsWith("2")となるように変更します。

それでは実行してみます。

“2”で終わる文字列のみ表示されました。

このように指定した文字列で始まるか、終わるかを条件に設定したい場合に使用します。
例としてはStartsWithは「http://」で始まるか確かめたいとき、EndsWithは拡張子を確かめたいとき(「.txt」や「.csv」)などに使用します。

最後に

UiPathで文字列操作をする際によく使うStringメソッドについて説明しました。
自動化の際には文字列操作をよく行うのでStringメソッドの使い方は覚えておきましょう。

次は出力データの加工方法について説明したいと思います。

次回 UiPathデータ操作編③ 出力データの加工方法

コメント