在Lua中,我有一个像这样的字符串:231 523 402 1223 9043 -1 4它包含多个用空格分隔的数字。现在,我想将其转换为整数的向量,如何使用一些内置函数来实现它?
您可以将string.gsub与函数一起用作替换值。
如果repl是一个函数,则每次匹配时都会调用此函数,所有捕获的子字符串均按顺序传递为参数。
用法示例如下所示:
local function tovector(s)
local t = {}
s:gsub('%-?%d+', function(n) t[#t+1] = tonumber(n) end)
return t
end
Run Code Online (Sandbox Code Playgroud)
直接使用它:
local t = tovector '231 523 402 1223 9043 -1 4'
Run Code Online (Sandbox Code Playgroud)
结果是一个向量(或Lua术语中的序列):
for i,v in ipairs(t) do print(i,v) end
1 231
2 523
3 402
4 1223
5 9043
6 -1
7 4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6174 次 |
| 最近记录: |