菜单
开源

string

string 命名空间包含与字符串相关的函数。

string.format

string.format 函数根据规范字符串格式化多个其他值,生成一个字符串。它类似于 C 语言中的 printf 函数,以及其他编程语言中的类似函数。

alloy
string.format(spec, values...)

示例

alloy
> string.format("Hello, %s!", "Ander")
"Hello, Ander!"
> string.format("There are %d lights", 4)
"There are 4 lights"

当您使用更复杂的格式规范时,string.format 函数最为有用。

规范语法

规范是一个字符串,包含以 % 字符开头的格式动词。函数调用必须为规范中的每个动词序列提供一个额外的参数。只要给定的每个参数都可以转换为格式动词所需的类型,动词就会与连续的参数匹配并按指示进行格式化。

默认情况下,% 序列会按顺序使用参数,从第一个开始。在动词字母之前立即引入一个 [n] 序列(其中 n 是十进制整数),可以显式地通过其一基索引选择特定的值参数。此后没有显式索引的调用将从 n+1、n+2 等开始继续。

如果格式字符串请求不可能的转换或访问的参数多于给定的参数,函数将产生错误。对于不支持的格式动词也会产生错误。

动词

规范可以包含以下动词。

动词结果
%%字面量百分号,不消耗值。
%t转换为布尔值并生成 true 或 false。
%b转换为整数并生成二进制表示。
%d转换为整数并生成十进制表示。
%o转换为整数并生成八进制表示。
%x转换为整数并生成小写字母的十六进制表示。
%X类似于 %x,但使用大写字母。
%e转换为数字并生成科学计数法,例如 -1.234456e+78。
%E类似于 %e,但使用大写 E 表示指数。
%f转换为数字并生成不带指数的小数表示,例如 123.456。
%g对于大指数类似于 %e,否则类似于 %f。
%G对于大指数类似于 %E,否则类似于 %f。
%s转换为字符串并插入字符串的字符。
%q转换为字符串并生成 JSON 引号字符串表示。

string.join

string.join 使用字符作为分隔符将数组中的所有项连接成一个字符串。

alloy
string.join(list, separator)

示例

alloy
> string.join(["foo", "bar", "baz"], "-")
"foo-bar-baz"
> string.join(["foo", "bar", "baz"], ", ")
"foo, bar, baz"
> string.join(["foo"], ", ")
"foo"

string.replace

string.replace 在字符串中搜索子字符串,并将子字符串的每次出现替换为替换字符串。

alloy
string.replace(string, substring, replacement)

示例

alloy
> string.replace("1 + 2 + 3", "+", "-")
"1 - 2 - 3"

string.split

string.split 通过在所有分隔符出现的位置分割字符串来生成列表。

alloy
split(list, separator)

示例

alloy
> string.split("foo,bar,baz", "," )
["foo", "bar", "baz"]

> string.split("foo", ",")
["foo"]

> string.split("", ",")
[""]

string.to_lower

string.to_lower 将字符串中的所有大写字母转换为小写。

示例

alloy
> string.to_lower("HELLO")
"hello"

string.to_upper

string.to_upper 将字符串中的所有小写字母转换为大写。

示例

alloy
> string.to_upper("hello")
"HELLO"

string.trim

string.trim 从字符串的开头和结尾移除指定字符集。

alloy
string.trim(string, str_character_set)

示例

alloy
> string.trim("?!hello?!", "!?")
"hello"

> string.trim("foobar", "far")
"oob"

> string.trim("   hello! world.!  ", "! ")
"hello! world."

string.trim_prefix

string.trim_prefix 从字符串的开头移除前缀。如果字符串不是以前缀开头,则返回原字符串。

示例

alloy
> string.trim_prefix("helloworld", "hello")
"world"

string.trim_suffix

string.trim_suffix 从字符串的结尾移除后缀。

示例

alloy
> string.trim_suffix("helloworld", "world")
"hello"

string.trim_space

string.trim_space 从字符串的开头和结尾移除所有空白字符。

示例

alloy
> string.trim_space("  hello\n\n")
"hello"