IBM FileNet P8, V5.2.1            

字符串函数

本节包含适用于字符串值的函数的简要描述。

表 1. 函数及其用途表
函数 用途
convert 将字符串转换为另一种数据类型,或者将另一种数据类型转换为字符串。
decode 将已编码的字符串表达式转换回原始字符串。
encode 将字符串表达式转换为毫无意义的文本字符串。
hex 将其中包含十六进制字符代码的字符串文字转换为 ASCII 字符串。
in_set 如果字符串完全由另一个字符串中的字符组成,那么此函数将返回布尔值 true。
is_number 如果字符串表达式求值为浮点值或整数值,那么此函数将返回布尔值 true。
is_time 如果字符串表达式求值为有效的时间值,那么此函数将返回布尔值 true。
len 将返回字符串的长度。

lower

upper

将字符串的字符更改为小写或大写。

ltrim

rtrim

trim

从字符串的开头 (ltrim)、末尾 (rtrim) 或两端 (trim) 删除空格或者删除所指定的字符。
max 从表达式列表中返回任何受支持数据类型的最大值。
min 从表达式列表中返回任何受支持数据类型的最小值。
numbertostring 使用所指定的掩码将 float 或 integer 转换为字符串表达式。
repeat 通过将一个字符串重复所指定的次数来创建另一个字符串。
strins 将一个字符串插入到另一个字符串中的指定位置。
strloc 将返回一个字符串中的子串的起始位置。如果找不到此子串,那么此函数将返回 0。
stringtotime 使用所指定的掩码将字符串表达式转换为时间表达式。
substitute 在字符串中,将一个子串替换为另一个子串。
substr 根据所指定的起始位置和长度来返回子串。
timetostring 使用所指定的掩码将时间表达式转换为字符串表达式。
translate 替换字符串中的字符。
xmlencode 将 XML 字段转换为字符串表达式。
xmldecode 将字符串表达式转换为 XML。

hex

此函数会将十六进制字符代码的字符串文字转换为 ASCII 字符串。尽管您通常将 hex 函数用于不具备 ASCII 表示法的字符(例如,制表符),但是此函数可以表示任何字符。

每两个十六进制数表示结果字符串中的一个字符。字符串文字中的奇数个十六进制字符将导致错误。使用以下语法:
hex (hex_codes)
其中 hex_codes 是其中包含一个字符或者一系列字符的十六进制代码的字符串文字。
以下示例将返回字符串 abc,这是因为 61、62 和 63 是这些字符的十六进制代码。
hex ("616263")

translate

此函数通过将一个字符串中的字符替换为您所指定的字符来创建新的字符串。translate 函数对于为字符编码很有用。

使用以下语法:
translate (source_string, search_string,
replace_string)
其中:
表 2. translate 函数的参数和描述
参数 描述
source_string 其中包含要替换的字符的字符串。
search_string source_string 中要替换的字符组成的字符串。其长度必须与 replace_string 相同。
replace_string 替换字符组成的字符串。其长度必须与 search_string 相同。

按每个字符进行搜索并替换。如果搜索字符串为 "abc",替换字符串为 "def",那么此函数在新创建的字符串中会将 "a" 替换为 "d",将 "b" 替换为 "e",将 "c" 替换为 "f"。

例如,对于下列值,
source_string 包含 "*123-#44-!999"
search_string 包含 "#*!-"
replace_string 包含 "XYZ&"
那么此函数将输出以下新字符串:
Y123&X44&Z999

请注意,源字符串、搜索字符串和替换字符串的内容不变。

提示: 如果要搜索并替换整个子串而不是替换个别字符,请使用 substitute 函数。
以下示例使用 translate 函数将字符串从欧洲数字格式转换为美国数字格式。
translate (str, ".,", ",.")

lower 和 upper

这些函数将字符串中的所有字符分别转换为小写或大写。使用以下语法:
lower (string_exp)

upper (string_exp)
其中 string_exp 是要转换的字符串表达式。

in_set

此函数对两个字符串进行比较,如果第一个字符串中的每个字符都包含在第二个字符串中的某处,那么此函数将返回布尔值 true。如果第一个字符串中至少有一个字符未包含在第二个字符串中,那么此函数将返回 false。这两个字符串中的字符不需要按完全相同的顺序出现;此外,第二个字符串中还可以包含其他字符。

使用以下语法:
in_set (subset_string, superset_string)
其中:
表 3. in_set 函数的参数和描述
参数 描述
subset_string 其中仅包含子集字符的字符串表达式。
superset_string 与 subset_string 进行比较的字符串表达式。
在以下示例中,
in_set (name, "abcdefghijklmnopqrstuvwxyz")
the function returns true if
name = "jim"
but false if
name = "Fido"
or
name = "a.b"

len

此函数将计算字符串表达式的实际长度(而不是已声明的长度)。它将提供表达式中的字符总数(包括空格在内)。使用以下语法:
len (string_expr)
其中 string_expr 是要计算其长度的字符串表达式。
在以下示例中,返回的长度为 15。请注意,右引号并不算作字符。
len ("Hamilton Burger")

repeat

此函数通过将所给定的字符串重复所指定的次数来创建另一个字符串。使用以下语法:
repeat (string_expr, repeat_num)
其中:
表 4. repeat 函数的参数和描述
参数 描述
string_expr 要重复的字符串表达式。
repeat_num 重复 string_exp 的次数。
以下示例将输出 abcdabcdabcdabcdabcd 字符串。
repeat ("abcd", 5)

strloc

子串是源字符串的一部分;其长度可以小于或等于源字符串的长度。例如,GoodMornod MorniGood Morni 都是 Good Morning 的子字符串。

使用 strloc 函数来了解特定子串出现在源字符串中的位置。此函数将返回此子串在源字符串中的起始字符位置。

如果在源字符串中可以多次找到此子串,那么此函数将返回它第一次出现时的起始位置。如果找不到此子串,或者此子串比源字符串更长,那么此函数将返回 0。

使用以下语法:
strloc (source_string, sub_string)
其中:
表 5. strloc 函数的参数和描述
参数 描述
source_string 要在其中搜索此子串的字符串。
sub_string 要搜索的字符串。
因为此子串从源字符串的第 6 个字符开始,所以此示例将返回值 6。
strloc ("Good Morning", "Morning")

substr

此函数将从源字符串中抽取一个子串,从而创建一个新的字符串。您要指定源字符串以及开始进行抽取的字符位置。此外,您可以选择提供要抽取的字符数;如果您不提供此信息,那么将在源字符串的末尾停止抽取。

使用以下语法:
substr (source_string, start_pos {, length})
其中:
表 6. substr 函数的参数和描述
参数 描述
source_string 源字符串。
start_pos 开始进行抽取的字符位置。
length 要抽取的字符数(例如,所抽取的字符串的长度)。
以下示例将返回字符串 Morning。请注意,右引号并不算作此字符串的一部分。
substr ("Good Morning!", 6, 7)

此函数还可以在比字符串长度长一个字符的位置抽取长度为 0 的字符串(引号之间没有任何字符的字符串)。对于将长度为 0 的字符串作为边缘条件的算法,这种用法很有用。可以从字符串的第一个位置到最后一个字符 +1 的位置抽取字符;因此,第一个位置以及字符串长度 +1 就是边缘条件。

如果存在下列情况,那么将发生运行时错误:

  • 起始位置小于 1 或者大于源字符串长度 + 1。
  • 所指定的长度将生成一个比源字符串中的其余字符更长的子串(即,start_pos + length > len (source_string) + 1)。

strins

此函数会将一个字符串插入另一个字符串中,从而创建一个新的字符串。源字符串和插入的字符串的值不变。使用以下语法:
strins (source_string, insert_string, start_pos)
其中:
表 7. strins 函数的参数和描述
参数 描述
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)
其中:
表 8. substitute 函数的参数和描述
参数 描述
source_string 其中包含 unwanted_string 的字符串。
unwanted_string source_string 的子串。
replacement_string 一个字符串,它将替换 unwanted_string 以创建一个新的字符串。
在以下示例中,TestString 中每次出现的 abc 都将替换为 wxyz。按从左到右的顺序进行替换。
substitute (TestString, "abc", "wxyz")
如果
TestString = "abcdabcd"
,那么此函数将返回以下新字符串:
wxyzdwxyzd
请注意,源字符串、不需要的字符串和替换字符串的内容不变。
提示: 要搜索并替换个别字符而不是替换子串,请使用 translate 函数。

ltrim、rtrim 和 trim

这些函数将通过复制现有的源字符串,然后从新字符串的开头 (ltrim)、末尾 (rtrim) 或两端 (trim) 删除空格或者删除所指定的字符来创建新的字符串。在所有情况下,源字符串都将保持不变。

对所有这三个函数都使用以下语法:
ltrim (string_expr{, trim_char}opt)

rtrim (string_expr{, trim_char}opt)

trim (string_expr{, trim_char}opt)
其中:
表 9. trim、ltrim 和 rtrim 函数的参数和描述
参数 描述
string_expr 要复制的源字符串表达式。
trim_char

这是一个可选参数,它指定要从新字符串中删除的字符。如果您未指定此参数,那么将删除空格。

根据此函数,将从新字符串的开头、末尾或者两端开始删除,直到找到在 trim_char 中未指定的字符(或者非空格字符)为止。

以下示例将从 LastName 中删除所有前导空格。在该示例中,
LastName = "Smith"
且返回的新字符串为
"Smith"
ltrim (LastName)
以下示例将从 Status 字符串的末尾删除“&”字符。如果
Status = "OpenXY&Z&&&&"
,那么返回的新字符串为
"OpenXY&Z"
rtrim (Status, "&")
以下示例将从 AccountName 中删除所有结尾数字。
rtrim (AccountName, "0123456789")

is_number

此函数将确定所指定的字符串表达式是否求值为浮点值或整数值。如果整个字符串(而不只是一个子串)求值为浮点值或整数值,那么 is_number 函数将返回布尔值 true,否则将返回 false。

使用以下语法:
is_number (expr)
其中 expr 是字符串表达式。
以下三个示例将分别返回 true、false 和 false。
is_number ("123.4")

is_number ("no")

is_number ("abc63j")

is_time

此函数将确定所指定的字符串表达式是否求值为所指定格式的时间值。如果整个字符串(而不只是一个子串)求值为具有指定格式的时间,那么 is_time 函数将返回布尔值 true,否则将返回值 false。

使用以下语法:
is_time (str_expr, date_time_mask)
其中:
表 10. is_time 函数的参数和描述
参数 描述
str_expr 字符串表达式。
date_time_mask 这是一个日期/时间掩码,用于指定 str_expr 必须使用的格式,以便让 is_time 返回值 true。
在下列示例中,第一个示例将返回 false,第二个示例将返回 true。在这两个示例中,使用 convert 函数将字符串表达式转换为 time 数据类型,以便可以对 is_time 函数进行求值。
is_time ("nov121995", "mm/dd/yyyy")

is_time ("11/12/1995", "mm/dd/yyyy")

timetostring

此函数使用您指定的格式将时间表达式转换为字符串表达式。使用以下语法:
timetostring (time_expr, date_time_mask)
其中:
表 11. timetostring 函数的参数和描述
参数 描述
time_expr time 类型的表达式。
date_time_mask 这是用于确定 timetostring 函数的输出格式的日期/时间掩码
以下示例会将系统时间转换为字符串。将使用所指定的日期/时间掩码来确定字符串的格式。
timetostring (systemtime(), "mm/dd/yyyy hh:tt:ss am")
在以上示例中,如果 systemtime() 等价于 1985 年 7 月 1 日下午 12:45 过 6 秒,那么字符串输出为:
7/1/1985 12:45:06 pm

请参阅有关 systemtime() 函数的信息。

stringtotime

此函数使用您指定的格式将字符串转换为时间。使用以下语法:
stringtotime (string_expr, date_time_mask)
其中:
表 12. stringtotime 函数的参数和描述
参数 描述
string_expr string 类型的表达式。
date_time_mask 用于指定要用于转换的时间格式的日期/时间掩码
在以下示例中,HostTime 是一个字符串变量。
stringtotime (HostTime, "mon. dd, yyyy hh:tt:ss am")
如果
HostTime = "Jul. 1, 1985 12:45:06 pm"
,那么最终获得的输出是一个等价于 1985 年 7 月 1 日下午 12:45 过 6 秒的时间值。

encode 和 decode

这些函数会将字符串转换为毫无意义的字符串,以便掩盖其内容。encode 和 decode 必须位于同一个工作流程中。

可以使用 decode 函数来转换其中包含多个已编码字符串的字符串表达式。
encode (string_expr)

decode (string_expr)
其中:
表 13. decode 和 encode 函数的参数和描述
参数 描述
string_expr string 类型的表达式。字符串不能为文字。


最近一次更新时间: 2016 年 3 月
bpfe012.htm

© Copyright IBM Corporation 2016.