はじめに
引き続き、UiPathアカデミーで学習した文字列操作を紹介する。
前回はToStringメソッドとContainsメソッドについて触れた。
今回は下記の使用方法をまとめた。
- Splitメソッド
- String.Format メソッド
- GenericValue 型変数
Splitメソッド
指定の文字列でテキストを分割し、配列に格納する。
Split("文字列","区切り文字(1文字)" )
使用例①:テキスト内の"★"で文字列を区切る
"いちご★りんご★ばなな★みかん"
を "★"で区切り、配列に格納する。
配列から 「いちご」 を取り出して表示させる。
①文字列型の変数「文字列」を定義する。
規定値に "いちご★りんご★ばなな★みかん"
と入力する。
②メッセージボックスを設定する。
テキストボックスに split(文字列, "★")(0)
と入力する。
③実行すると「いちご」が表示される。
<配列の中身は以下>
フルーツ(0) : "いちご"
フルーツ(1) : "りんご"
フルーツ(2) : "ばなな"
フルーツ(3) : "みかん"
上記の中身を1つずつ順番に表示させたい場合は、
「コレクション(コレクションの各要素)」アクティビティ を使用するが、
ここでは説明を割愛する。
使用例②:ToCharArray メソッドと組み合わせる
区切り文字が複数ある場合は、ToCharArray メソッドを使う。
String.Split("区切り文字".ToCharArray)
今回は以下のテキストから、「チーズケーキ」 のみを取り出して表示する。
"私が好きなケーキは、チーズケーキです。"
①以下の変数を定義する
名前 | 変数の型 | 規定値 |
---|---|---|
文字列 | String | "私が好きなケーキは、チーズケーキです。" |
配列 | String[] | なし |
②「代入」アクティビティを配置する。
左辺: 文字列
右辺: 配列.Split("、で".ToCharArray)
③メッセージボックスを設定する。
テキストボックスに配列(1)
と入力する。
④実行すると、「チーズケーキ」のみが表示される。
<配列の中身は以下>
配列(0) : "私が好きなケーキは"
配列(1) : "チーズケーキ"
配列(2) : "す。"
String.Format メソッド
文字列と異なるデータ型を連結したい場合、
String.Format メソッドを使用すると、一括で文字列型に変換できる。
使用例:文字列型と日付型変数を連結する
以下のテキストをメッセージボックスに表示させる。
"現在の時刻は、HH時mm分(現在時刻)です。おやすみなさい"
①文字列型の変数「あいさつ」を定義する。
規定値に"おやすみなさい"
と入力する。
②メッセージボックスを配置し、以下を入力する。
String.Format("現在の時刻は、{0:HH時mm分}です。{1}",Now,あいさつ)
③実行すると、現在の時刻と変数「あいさつ」の値が表示される。
GenericValue 型変数
様々な種類のデータが格納できる、UiPath独自の変数の型。
主に下記のデータを格納可能で、目的に応じて自動で型を変換してくれる。
- テキスト
- 数値
- 日付
- 配列
GenericValue型を使用すれば、型を意識せず扱うことができるが、
意図しないエラーを出力しないよう、十分に注意して使用すること。
使用例:文字列と数値を連結する
前回も記載したように、文字列型と異なるデータ型の変数を連結する際は、
文字列型へ変換(.ToString)する必要があるが、GenericValue型を使用する場合は不要となる。
①数値型の変数「数値」を定義する。
規定値に"100"
を入力する。
②メッセージボックスを配置する。
③テキストボックスに以下を入力する。
"テストの点数は" + 数値 + "点でした。"
⑤実行結果はこちら
(補足)型の参照について
変数を定義する際、デフォルトでGenericValue型を選択できないため、
下記の手順で設定する。
①変数パネルの「変数の型」プルダウンをクリックする
②「型の参照...」をクリックする
③「型の名前」にGenericValue
と入力する
④UiPath Coreの「GenericValue」を選択して「OK」をクリックする
変数の型にGenericValue
と表示される
感想
書き始めは、SplitとToCharArrayメソッドを組み合わせて
使う方法がなかなか想像できなかった😭
Splitメソッドで複数の区切り文字を指定した時、エラーになったので
そこでやっと、こういう時にToCharArrayを使えばいいんだと分かった。
また、Generic型変数は、実際の開発ではまだ使ったことが無いが、
後で型が分からなくなりそうなので、なるべく型を宣言するようにしたい。