文字列の中から指定した長さの文字列(一部分)を返します。
入力 | データ型 | 説明 |
---|---|---|
入力1 | String | 文字列 |
入力2 | Integer | 存在する場合、開始位置プロパティを置換 |
入力3 | Integer | 存在する場合、取り出す文字数プロパティを置換 |
出力 | データ型 | 説明 |
---|---|---|
出力1 | String | 切り出した文字列 |
名前 | プロパティ型 | 説明 | ||||||
---|---|---|---|---|---|---|---|---|
開始位置 | int | 先頭文字の位置を1とした開始位置を指定します。 入力の文字列長より大きい値の場合、空文字列を返します。 |
||||||
取り出す文字数 | int | 取得する文字数を指定します。 0の場合、空文字列を返します。 -1の場合、開始位置からのすべての文字を返します。 |
||||||
文字数の単位 | choice |
文字数の数え方を指定します。
|
||||||
エンコーディング | choice | 文字数をバイト数で数える場合のエンコーディングを指定します。 |
「文字数の単位」プロパティで「バイト」を選択する場合、文字数は指定のエンコーディングでのバイト単位で数えられます。
文字列"あいうえお"をshitf_jisとutf-8であらわすとそれぞれ次のようなバイト列になります。
shift_jis: 82 A0 82 A2 82 A4 82 A6 82 A8
utf-8: E3 81 82 E3 81 84 E3 81 86 E3 81 88 E3 81 8A
例えば、Left関数で、取り出す文字数(バイト数)を"6"とした場合、エンコーディングがshift_jisであれば「あいう」の3文字が、utf-8であれば「あい」の2文字が出力されます。
取り出す文字数を"5"とした場合、どちらのエンコーディングでも文字の途中で区切られることになりますが、この場合は指定のバイト数内に収まるように文字列が切り詰められます。つまり、shift_jisの場合は「あい」2文字(4バイト)、utf-8の場合は「あ」1文字(3バイト)が出力されます。
(Mid関数で、「開始位置」プロパティの指定により開始位置が文字の途中で区切られる場合は開始位置は後ろにずらされます。)
[注意] iso-2022-jpのようにShiftIn/ShiftOutのある文字コードの場合、「文字数の単位」プロパティで「バイト」を選択すると正しい結果は得られません。
[注意] プラットフォームがAIXの場合、文字の途中で区切られると正しい結果が得られない場合があります。
プロパティ | 出力 | |||
入力1 | インフォテリア | 開始位置 | 3 | フォ |
取り出す文字数 | 2 |