[英]Lua: Splitting a string and getting the two numbers as separate variables
我已经搜索了几个地方,但无济于事。 所以这是我需要做的:我有一个字符串:“ something123x456”,我需要将123和456作为单独的数字来获取。 我知道,如果数字总是3位长,那会容易得多,但它们都可以不同。例如,123和456表示游戏中的X和Y值; 因此它们可能是something2x5或something2x98等。
我需要以某种方式删除“东西”,然后获取第一组数字并将其保存到名为worldxid的变量中,然后删除“ x”,然后获取最后几位数字并将其添加到worldyid中。
注意:这在游戏的仿真器中使用,因此有API调用:textutils。 我有以下代码:
local tNumbers = {
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
}
str = "space1x1"
something = {}
new = {}
for i = 1, #str do
local c = str:sub(i,i)
-- do something with c
print(c)
table.insert(something, c)
end
for k, v in ipairs(something) do
for _,v1 in ipairs(tNumbers) do
if v == v1 then
table.insert(new, v)
elseif v == "x" then
break
end
end
end
table.concat(new)
print(#new)
print(textutils.serialize(new))
提前致谢!
像这样吗
str = "something123x456"
local s1, s2 = str:match("(%d+)x(%d+)")
local n1, n2 = tonumber(s1), tonumber(s2)
尝试这个:
s = "something123x456"
worldxid, worldyid = s:match("(%d+).-(%d+)")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.