🔠 字符串(String)#
#bs.string:help
使用多功能的操作和搜索函数来管理和转换字符串。
“文字是人类使用的最强大的药物。”
—鲁德亚德·吉卜林
🔧 函数#
你可以在下方找到此模块中的所有可用函数。
拼接#
- #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":"\""}]
如何插入?
要在不删除任何字符的情况下插入文本,请将 start 和 end 设置为相同的位置。这将在保留所有现有字符的同时在该位置插入新文本。
技术限制
如果要在字符串中使用双引号("),必须使用反斜杠转义:\"。
制作人员: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
💬 这对你有帮助吗?
欢迎在下方留下你的问题和反馈!