文字列関数
このセクションでは、文字列値に適用される関数について簡単に説明します。
関数 | 動作 |
---|---|
convert | 文字列を別のデータ型に変換する、または別のデータ型を文字列に変換します。 |
decode | エンコードされた文字列式を元の文字列に戻します。 |
encode | 文字列式を意味のないテキスト文字列に変換します。 |
hex | 16 進文字コードを含む文字列リテラルを ASCII 文字列に変換します。 |
in_set | ある文字列がすべて別の文字列の文字から構成されている場合、ブール値 true を返します。 |
is_number | 文字列式が浮動小数点数値または整数値に評価される場合、ブール値 true を返します。 |
is_time | 文字列式が有効な時間値に評価される場合、ブール値 true を返します。 |
len | 文字列の長さを返します。 |
文字列の文字を小文字または大文字に変換します。 | |
文字列の先頭 (ltrim)、終わり (rtrim)、またはその両方 (trim)から空白または指定された文字を削除します。 | |
max | サポートされるデータ型の式のリストから最大値を返します。 |
min | サポートされるデータ型の式のリストから最小値を返します。 |
numbertostring | 指定されたマスクを使用して、浮動小数点数式または整数式を文字列式に変換します。 |
repeat | ある文字列を指定された回数繰り返すことによって別の文字列を作成します。 |
strins | ある文字列を別の文字列の指定された位置に挿入します。 |
strloc | 文字列内の部分文字列の開始位置を返します。部分文字列が見つからない場合は、0 (ゼロ) を返します。 |
stringtotime | 指定されたマスクを使用して、文字列式を時間式に変換します。 |
substitute | 文字列内で、ある部分文字列を別の部分文字列に置き換えます。 |
substr | 指定された開始位置と長さにしたがって部分文字列を返します。 |
timetostring | 指定されたマスクを使用して、時間式を文字列式に変換します。 |
translate | 文字列内の文字を置き換えます。 |
xmlencode | XML フィールドを文字列式に変換します。 |
xmldecode | 文字列式を XML に変換します。 |
hex
この関数は、16 進文字コードを含む文字列リテラルを ASCII 文字列に変換します。hex 関数では、どのような文字でも表すことができますが、通常は、タブなど、ASCII 表現を持たない文字に使用します。
hex (hex_codes)
ここで、hex_codes は、1 文字または一連の文字に対する 16 進コードを含む文字列リテラルです。hex ("616263")
translate
この関数は、ある文字列内の文字を指定された別の文字に置き換えることで新しい文字列を作成します。translate 関数は、文字をエンコードする場合に役立ちます。
translate (source_string, search_string,
replace_string)
ここでパラメーター | 説明 |
---|---|
source_string | 置換対象の文字を含む文字列です。 |
search_string | 置き換える source_string 内の文字の文字列です。replace_string と同じ長さでなければなりません。 |
replace_string | 置換文字の文字列です。search_string と同じ長さでなければなりません。 |
検索と置換は文字ごとに行われます。検索文字列が「abc」で、置換文字列が「def」の場合は、新しく作成された文字列では、「a」が「d」に、「b」が「e」に、「c」が「f」に変換されます。
source_string contains "*123-#44-!999"
search_string contains "#*!-"
replace_string contains "XYZ&"
この場合は、次の新しい文字列が出力されます。Y123&X44&Z999
ソース文字列、検索文字列、および置換文字列の内容は変更されないことに注意してください。
translate (str, ".,", ",.")
lower、upper
lower (string_exp)
upper (string_exp)
ここで、string_exp は、変換する文字列式です。in_set
この関数は、2 つの文字列を比較し、1 つ目の文字列内のすべての文字が 2 つ目の文字列内のどこかに含まれる場合にブール値の true を返します。1 つ目の文字列に、2 つ目の文字列内にはない文字が 1 文字以上ある場合は、値 false を返します。文字は両方の文字列の同じ位置にある必要はありません。また、2 つ目の文字列に他の文字が含まれていても構いません。
in_set (subset_string, superset_string)
ここでパラメーター | 説明 |
---|---|
subset_string | サブセット文字のみを含む文字列式です。 |
superset_string | subset_string と比較する文字列式です。 |
in_set (name, "abcdefghijklmnopqrstuvwxyz")
この関数は、次の場合は true を返します。name = "jim"
ただし、次の場合は false を返します。name = "Fido"
orname = "a.b"
len
len (string_expr)
ここで、string_expr は長さを計算する文字列式です。len ("Hamilton Burger")
repeat
repeat (string_expr, repeat_num)
ここでパラメーター | 説明 |
---|---|
string_expr | 繰り返す文字列式です。 |
repeat_num | string_exp を繰り返す回数です。 |
repeat ("abcd", 5)
strloc
部分文字列はソース文字列の一部です。ソース文字列の長さより短いか、等しくすることができます。例えば、Good、Morn、od Morni、Good Morni は、すべて Good Morning の部分文字列です。
strloc 関数では、ソース文字列内で特定の部分文字列がどこにあるかを調べることができます。この関数は、ソース文字列内の部分文字列の開始文字位置を返します。
部分文字列がソース文字列内で複数見つかった場合は、1 つ目の発生個所の開始位置が返されます。部分文字列が見つからなかった場合、または部分文字列の長さがソース文字列よりも長い場合は、0 (ゼロ) が返されます。
strloc (source_string, sub_string)
ここでパラメーター | 説明 |
---|---|
source_string | 部分文字列の検索先の文字列です。 |
sub_string | 検索する部分文字列です。 |
strloc ("Good Morning", "Morning")
substr
この関数は、ソース文字列から部分文字列を抽出して、新しい文字列を作成します。ソース文字列と、抽出を開始する文字位置を指定します。また、必要に応じて、抽出する文字数を指定できます。この情報が指定されない場合、抽出はソース文字列の終わりで停止します。
substr (source_string, start_pos {, length})
ここでパラメーター | 説明 |
---|---|
source_string | ソース文字列です。 |
start_pos | 抽出を開始する文字位置です。 |
length | 抽出する文字数 (例えば、抽出する文字列の長さ) です。 |
substr ("Good Morning!", 6, 7)
この関数では、文字列の長さより 1 文字長い位置で、長さがゼロの文字列 (引用符の中に文字がない文字列) を抽出することもできます。この使い方は、長さがゼロの文字列を終端位置とみなすアルゴリズムに役立ちます。文字列の位置 1 から最後の文字 +1 の位置までの文字を抽出できます。位置 1 と文字列の長さ +1 の位置が終端位置です。
次の場合は、ランタイム・エラーが発生します。
- 開始位置が 1 より小さいか、ソース文字列の長さ + 1 より大きい場合。
- 指定された長さによって、ソース文字列内の残りの文字数より長い部分文字列が生成される場合 (すなわち、start_pos + length > len (source_string) + 1 の場合)。
strins
strins (source_string, insert_string, start_pos)
ここでパラメーター | 説明 |
---|---|
source_string | insert_string と組み合わせて新しい文字列を生成する文字列です。 |
insert_string | source_string と組み合わせて新しい文字列を生成する文字列です。 |
start_pos | 挿入を開始する source_string 内の位置です。値の範囲は 1 から source_string + 1 の位置までです。 1 より小さい値または source_string + 1 より大きい値を指定すると、ランタイム・エラーが発生します。 |
insert_str = "Mr. Jones,"
以下の文字列を指定します。source_str = "Good morning, what a lovely day."
strins (source_str, insert_str, 15)
Good morning, Mr. Jones, what a lovely day.
substitute
substitute (source_string, unwanted_string,
replacement_string)
ここでパラメーター | 説明 |
---|---|
source_string | unwanted_string を含む文字列です。 |
unwanted_string | source_string の部分文字列です。 |
replacement_string | 新しい文字列を作成するために unwanted_string と置き換える文字列です。 |
substitute (TestString, "abc", "wxyz")
TestString = "abcdabcd"
この場合、この関数は以下の新規文字列を返します。wxyzdwxyzd
ソース文字列、不要な文字列、および置換文字列の内容は変更されないことに注意してください。ltrim、rtrim、trim
これらの関数は、既存のソース文字列をコピーして、新しい文字列の先頭 (ltrim)、終わり (rtrim)、またはその両方 (trim) から空白または指定された文字を削除することで、新しい文字列を作成します。いずれの場合も、ソース文字列は変更されません。
ltrim (string_expr{, trim_char}opt)
rtrim (string_expr{, trim_char}opt)
trim (string_expr{, trim_char}opt)
ここでパラメーター | 説明 |
---|---|
string_expr | コピーするソース文字列式です。 |
trim_char | 新しい文字列から削除する文字を指定するオプション・パラメーターです。このパラメーターが指定されないと、空白が削除されます。 関数に応じて、削除は新しい文字列の先頭、終わり、またはその両方のいずれかから開始され、trim_char で指定された文字以外の文字 (または非ブランク文字) が見つかるまで続きます。 |
LastName = "Smith"
この場合、以下の新規文字列が返されます。"Smith"
ltrim (LastName)
Status = "OpenXY&Z&&&&"
この場合、以下の新規文字列が返されます。"OpenXY&Z"
rtrim (Status, "&")
rtrim (AccountName, "0123456789")
is_number
この関数は、指定された文字列式が浮動小数点数値または整数値に評価されるかどうかを判別します。is_number 関数は (部分文字列だけではなく) 文字列全体が浮動小数点数値または整数値に評価される場合はブール値 true を返し、それ以外の場合は false を返します。
is_number (expr)
ここで、expr は文字列式です。is_number ("123.4")
is_number ("no")
is_number ("abc63j")
is_time
この関数は、指定された文字列式が指定されたフォーマットの時間値に評価されるかどうかを判別します。is_time 関数は (部分文字列だけではなく) 文字列全体が指定されたフォーマットの時間値に評価される場合はブール値 true を返し、それ以外の場合は値 false を返します。
is_time (str_expr, date_time_mask)
ここでパラメーター | 説明 |
---|---|
str_expr | 文字列式です。 |
date_time_mask | フォーマットを指定する日付時間マスク。str_expr がこのフォーマットを使用していると、is_time は値 true を返します。 |
is_time ("nov121995", "mm/dd/yyyy")
is_time ("11/12/1995", "mm/dd/yyyy")
timetostring
timetostring (time_expr, date_time_mask)
ここでパラメーター | 説明 |
---|---|
time_expr | 時間型の式です。 |
date_time_mask | timetostring 関数の出力のフォーマットを指定する日付時間マスクです。 |
timetostring (systemtime(), "mm/dd/yyyy hh:tt:ss am")
7/1/1985 12:45:06 pm
「systemtime() 関数」の詳細を参照してください。
stringtotime
stringtotime (string_expr, date_time_mask)
ここでパラメーター | 説明 |
---|---|
string_expr | 文字列型の式です。 |
date_time_mask | 変換に使用する時刻フォーマットを指定する日付時間マスクです。 |
stringtotime (HostTime, "mon. dd, yyyy hh:tt:ss am")
HostTime = "Jul. 1, 1985 12:45:06 pm"
この場合、結果として生成される出力は、1985 年 7 月 1 日午後 12 時 45 分 6 秒に等しい時間値になります。