鈴鹿の住処

■UiPath Tips■

更新日:  作成日:

文字列を分割する

■はじめに

UiPath Studio で VB.Net の関数を使って、文字列を分割して配列する方法を紹介します。

Split 関数は、文字列を区切り文字で分割して 0 ベースの1次元配列に変換することができます。

"a b c"の文字列であれば、半角スペースで区切ると{"a", "b", "c"}の配列に変換できます。

分割を行う区切り文字と分割を行う最大数を設定することができます。

区切り文字は「小文字と大文字」、「半角と全角」、「ひらがなとカタカナ」の区別を行うか否かを設定することができます。

配列を結合して文字列への変換は「Join 関数」で行うことができます。

VB.Net のメソッドや関数は、代入や条件分岐のアクティビティなどの VB の式を入力する欄で使用することができます。

メソッド、関数の使い方画像

■メソッド、関数の引数と戻り値

Split(文字列, 区切り文字, 最大分割数, 比較種類)

文字列区切り文字で分割します。
分割を行う最大分割数を数字で指定できます。
大文字、小文字などを区別するかを比較種類で指定できます。

引数「文字列」  ・・・分割を行う文字列を指定します。
引数「区切り文字」・・・分割する文字列を指定します。省略可
引数「最大分割数」・・・分割する最大数を指定します。省略可
引数「比較種類」 ・・・大文字、小文字などを区別するかを指定します。省略可
戻り値の型・・・文字列型配列(String[])

引数「比較種類」
説明
vbBinaryCompare 「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別します。(既定値)
vbTextCompare 区別しません

■解説

分割された配列は 0 ベースの1次元配列になります。

引数「区切り文字」を省略すると、「" "(半角スペース)」で分割されます。

引数「区切り文字」が引数「文字列」に無い場合は、要素数が1つの配列を返します。要素には引数「文字列」がそのまま入ります。

引数「区切り文字」が「""(空文字)」の場合も、要素数が1つの配列を返します。要素には引数「文字列」がそのまま入ります。

引数「最大分割数」を省略すると、引数「区切り文字」を全て分割した配列を返します。
省略した場合は、既定値の「-1」となります。

引数「最大分割数」が「1」の場合、要素数が1つの配列を返します。要素には引数「文字列」がそのまま入ります。

引数「最大分割数」が「2」の場合、要素数が2つの配列を返します。引数「文字列」の先頭に一番近い引数「区切り文字」の位置で分割されます。

引数「比較種類」を指定すると、「大文字と小文字」、「半角と全角」、「ひらがなとカタカナ」を区別せずに検索することができます。

■使用例

文字列を分割する

Split メソッドの使用例を紹介します。

            
  変数 s の型は String[]

  s = Split("a b c")        {"a", "b", "c"}
  s = Split("a b c", "b")   {"a ", " c"}
  s = Split("a b c", "d")   {"a b c"}
  s = Split("a b c", "")    {"a b c"}

  s = Split("a b c", Limit:=-1)   {"a", "b", "c"}
  s = Split("a b c", Limit:=1)    {"a b c"}
  s = Split("a b c", Limit:=2)    {"a", "b c"}

・小文字と大文字
  s = Split("aBa", "b", Compare:=vbTextCompare)     {"a", "a"}
  s = Split("aBa", "b", Compare:=vbBinaryCompare)   {"aBa"}

・半角と全角
  s = Split("aba", "b", Compare:=vbTextCompare)     {"a", "a"}
  s = Split("aba", "b", Compare:=vbBinaryCompare)   {"aba"}

・ひらがなとカタカナ
  s = Split("aあa", "ア", Compare:=vbTextCompare)     {"a", "a"}
  s = Split("aあa", "ア", Compare:=vbBinaryCompare)   {"aあa"}

  s = Split("小文字:a大文字:a半角:A全角:A", "a", Compare:=vbTextCompare)
  {"小文字:", "大文字:", "半角:", "全角:", ""}
  s = Split("小文字:a大文字:a半角:A全角:A", "a", Compare:=vbBinaryCompare)
  {"小文字:", "大文字:a半角:A全角:A"}