文字列操作でよく使うStringメソッド
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からスタートします。詳しくは下記の表を参考にしてください。
インデックス番号 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
文字(あいうえお) | あ | い | う | え | お |
まずは、新しく変数一覧で、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となります。(以下の表を参考にしてください。)
インデックス番号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
文字(2019年12月) | 2 | 0 | 1 | 9 | 年 | 1 | 2 | 月 |
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 of
のString
型を選択します。
次に代入
をtext_array = text.Split("/"c)
となるように変更します。

繰り返し(コレクションの各要素)
を代入
の下に配置します。
アクティビティ検索欄に「繰り返し」と入力するかワークフロー
-> コントロール
-> 繰り返し(コレクションの各要素)
から配置してください。
配置が完了したら、「コレクション」にtext_array
と入力し、1行を書き込み
をitem.ToString
に変更して繰り返し(コレクションの各要素)
の本体
に移動させます。

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

- “2019”
- “12”
- “25”
と表示されました。
“2019/12/25″をtext.Split("/"c)
に設定した”/”で区切り配列としてtext_array
に格納されています。繰り返し(コレクションの各要素)
を使用しなくても以下で表示することが出来ます。
インデックス番号 | 0 | 1 | 2 |
---|---|---|---|
文字(”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メソッドの使い方は覚えておきましょう。
次は出力データの加工方法について説明したいと思います。
コメント