1=0,2=1,3=0,4=1,5=0,6=1,7=1,8=0,9=1,10=1,第二神通=暂无神通 把这个分割后存入一个表里面 存入的时候如果值是0 那么把0改成false,是1就是true 比如 1=true 2=false
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-26 14:25:08 |
👁️ 阅读: 13
```lua
-- 将字符串分割并存入表,同时转换0/1为布尔值
local str = "1=0,2=1,3=0,4=1,5=0,6=1,7=1,8=0,9=1,10=1,第二神通=暂无神通"
local resultTable = {}
-- 按逗号分割
for item in string.gmatch(str, "([^,]+)") do
-- 按等号分割键值对
local key, value = string.match(item, "([^=]+)=([^=]+)")
if key and value then
-- 转换数字值为布尔值
if value == "0" then
resultTable[key] = false
elseif value == "1" then
resultTable[key] = true
else
resultTable[key] = value
end
end
end
-- 打印结果表
SL:Print("结果表内容:")
for k, v in pairs(resultTable) do
SL:Print(k .. " => " .. tostring(v))
end
```
这个代码会:
1. 使用`string.gmatch`按逗号分割字符串
2. 使用`string.match`按等号分割键值对
3. 将值"0"转换为`false`,值"1"转换为`true`
4. 其他值保持原样
5. 最后打印结果表
运行后你会得到:
- 1 => false
- 2 => true
- 3 => false
- 4 => true
- 5 => false
- 6 => true
- 7 => true
- 8 => false
- 9 => true
- 10 => true
- 第二神通 => 暂无神通
← 返回问答库