🔠 字符串(String)#

#bs.string:help

使用多功能的操作和搜索函数来管理和转换字符串。

../../_images/string.png

“文字是人类使用的最强大的药物。”

—鲁德亚德·吉卜林


🔧 函数#

你可以在下方找到此模块中的所有可用函数。


拼接#

#bs.string:concat

将数组中的多个字符串合并为一个连接后的字符串。

输入:

命令存储 bs:in string.concat.list: 要拼接的字符串列表。

输出:

命令存储 bs:out string.concat: 拼接后的字符串。

示例:拼接 Hello World 并显示结果:

data modify storage bs:in string.concat.list set value ["Hello ","World"]
function #bs.string:concat
tellraw @a [{"text":"The merged string is \""},{"storage":"bs:out","nbt":"string.concat"},{"text":"\""}]

技术限制

如果要在字符串中使用双引号("),必须使用反斜杠转义:\"

制作人员:Aure31


转换大小写#

#bs.string:upper

将文本转换为大写。

输入:

命令存储 bs:in string.upper.str 要转换为大写的字符串。

输出:

命令存储 bs:out string.upper 转换后的大写字符串。

示例:将 hello world 转换为 HELLO WORLD 并显示结果:

data modify storage bs:in string.upper.str set value "hello world"
function #bs.string:upper
tellraw @a [{"text":"The uppercase string is \""},{"storage":"bs:out","nbt":"string.upper"},{"text":"\""}]
#bs.string:lower

将文本转换为小写。

输入:

命令存储 bs:in string.lower.str 要转换为小写的字符串。

输出:

命令存储 bs:out string.lower 转换后的小写字符串。

示例:将 HELLO WORLD 转换为 hello world 并显示结果:

data modify storage bs:in string.lower.str set value "HELLO WORLD"
function #bs.string:lower
tellraw @a [{"text":"The lowercase string is \""},{"storage":"bs:out","nbt":"string.lower"},{"text":"\""}]

技术限制

这些函数支持大多数 UTF-8 字符,但不支持双引号字符(")。尝试使用或转义双引号将导致错误。

制作人员:Aure31


查找#

#bs.string:find

在字符串中搜索子字符串。查找第一次出现的位置。

输入:

命令存储 bs:in string.find

  • 查找数据

    • str: 被搜索的目标字符串。

    • substr: 要查找的子字符串。

输出:

返回值:第一次出现的位置的整数索引,如果未找到则返回-1。

示例:在 hello world 中查找 world 第一次出现的位置并显示索引:

data modify storage bs:in string.find set value {str:"hello world",substr:"world"}
execute store result score #c bs.ctx run function #bs.string:find
# return 6
tellraw @a [{"text":"Found at index: \""},{"score":{"name":"#c","objective":"bs.ctx"}},{"text":"\""}]
#bs.string:find_all

在字符串中搜索子字符串。查找所有出现的位置或指定数量的匹配项。

输入:

命令存储 bs:in string.find_all

  • 查找数据

    • str: 被搜索的目标字符串。

    • substr: 要查找的子字符串。

    • occurrence: 要查找的匹配项数量(-1 表示全部匹配项)。

输出:

命令存储 bs:out string.find_all 按出现顺序列出的子字符串位置索引列表。

返回值:找到的出现次数。

示例:在 hello world world 中查找所有 world 出现的位置并显示索引:

data modify storage bs:in string.find set value {str:"hello world",substr:"world",occurrence:-1}
function #bs.string:find_all
# return [6,12]
tellraw @a [{"text":"Found at indices: \""},{"storage":"bs:out","nbt":"string.find"},{"text":"\""}]

技术限制

这些函数不支持双引号字符(")。尝试使用或转义双引号将导致错误。

制作人员:Aure31


替换#

#bs.string:replace

将子字符串出现的位置替换为新文本。

输入:

命令存储 bs:in string.replace

  • 替换数据

    • str: 执行替换操作的基础字符串。

    • old: 待替换的子字符串。

    • new: 替换的字符串。

    • maxreplace: 最大替换次数(-1 表示无限制)。

输出:

命令存储 bs:out string.replace 替换后的字符串。

示例:在 hello world 中将 world 替换为 minecraft 并显示结果:

data modify storage bs:in string.replace set value {str:"hello world",old:"world",new:"minecraft",maxreplace:-1}
function #bs.string:replace
# return "hello minecraft"
tellraw @a [{"text":"Result: \""},{"storage":"bs:out","nbt":"string.replace"},{"text":"\""}]

技术限制

此函数不支持双引号字符(")。尝试使用或转义双引号将导致错误。

制作人员:Aure31


替换范围#

#bs.string:replace_range

将字符串中指定起始和结束位置之间的字符替换为新的子字符串。

输入:

命令存储 bs:in string.replace_range

  • 范围替换数据

    • str: 待修改的原始字符串。

    • substr: 插入起始与结束位置之间的新字符串。

    • start: 原始字符串中的起始位置(包含此位置)。

    • end: 原始字符串中的结束位置(不包含此位置)。

输出:

命令存储 bs:out string.replace_range 指定范围被替换后的修改后字符串。

示例:在 hello world 中将空格替换为 beautiful 并显示结果:

data modify storage bs:in string.replace_range set value {str:"hello world",substr:" beautiful ",start:5,end:6}
function #bs.string:replace_range
# return "hello beautiful world"
tellraw @a [{"text":"The new string is \""},{"storage":"bs:out","nbt":"string.replace_range"},{"text":"\""}]

如何插入?

要在不删除任何字符的情况下插入文本,请将 startend 设置为相同的位置。这将在保留所有现有字符的同时在该位置插入新文本。

技术限制

如果要在字符串中使用双引号("),必须使用反斜杠转义:\"

制作人员:Aure31


反转#

#bs.string:reverse

反转字符串中所有字符的顺序。

输入:

命令存储 bs:in string.reverse.str 要反转的字符串。

输出:

命令存储 bs:out string.reverse 所有字符顺序反转后的字符串。

示例:反转 hello world 并显示结果:

data modify storage bs:in string.reverse.str set value "hello world"
function #bs.string:reverse
# return "dlrow olleh"
tellraw @a [{"text":"The reversed string is \""},{"storage":"bs:out","nbt":"string.reverse"},{"text":"\""}]

技术限制

此函数不支持双引号字符(")。尝试使用或转义双引号将导致错误。

制作人员:Aure31


分割#

#bs.string:split

使用指定的分隔符将字符串分割成更小的部分,创建子字符串列表。

输入:

命令存储 bs:in string.split

  • 分割数据

    • str: 待分割为目标片段的字符串。

    • separator: 标识分割位置的分隔字符或字符串。

    • maxsplit: 最大分割次数(-1 表示无限制)。

输出:

命令存储 bs:out string.split 包含原始字符串分割部分的列表,按其出现顺序排列。

示例:用 " " 分割 hello world 并显示结果:

data modify storage bs:in string.split set value {str:"hello world",separator:" ",maxsplit:-1}
function #bs.string:split
# return "["hello","world"]"
tellraw @a [{"text":"The list of strings is \""},{"storage":"bs:out","nbt":"string.split"},{"text":"\""}]

技术限制

此函数不支持双引号字符(")。尝试使用或转义双引号将导致错误。

制作人员:Aure31


转换类型#

#bs.string:parse

尝试将字符串转换为其对应的值。

输入:

命令存储 bs:in string.parse.str 包含要提取值的字符串。

输出:

命令存储 bs:out string.parse 提取的值。可能的类型:布尔值、整数、双精度浮点数、字符串。

示例:将 "42" 转换为整数并显示结果:

data modify storage bs:in string.parse.str set value "42"
function #bs.string:parse
tellraw @a [{"text":"The number is \""},{"storage":"bs:out","nbt":"string.parse"},{"text":"\""}]
#bs.string:to_list

将字符串转换为列表,每个字符成为单独的元素。

输入:

命令存储 bs:in string.to_list.str 要转换为字符列表的字符串。

输出:

命令存储 bs:out string.to_list 包含每个字符作为单独元素的列表。

示例:将 hello world 转换为字符列表并显示结果:

data modify storage bs:in string.to_list.str set value "hello world"
function #bs.string:to_list
# return ["h","e","l","l","o"," ","w","o","r","l","d"]
tellraw @a [{"text":"The list of characters is \""},{"storage":"bs:out","nbt":"string.to_list"},{"text":"\""}]
#bs.string:to_string

将任何值转换为其字符串表示。

输入:

命令存储 bs:in string.to_string.value 要转换为字符串的值。

输出:

命令存储 bs:out string.to_string 转换为字符串表示的值。

示例:将 42 转换为其字符串表示并显示结果:

data modify storage bs:in string.to_string.number set value 42
function #bs.string:to_string
tellraw @a [{"text":"The string is \""},{"storage":"bs:out","nbt":"string.to_string"},{"text":"\""}]

制作人员:Aure31


💬 这对你有帮助吗?

欢迎在下方留下你的问题和反馈!