在Lua中将字符串在任意位置分割。

我想在lua中按照规律间隔分割字符串,并将每个新字符串显示在新行上。我的问题是,此分割应该发生在任意用户定义的字符数量之后,而不是在特定字符处。目前我的代码是:

logfile = io.open("input.txt","r")
inputstring = logfile:read("*all")
for word in string.gmatch(inputstring, "TERRAIN_%a*") do
j=1
if j <= 64 then
    io.write(word)
j=j+1
else
io.write(word,"\n")
    j=1
end

end

我的意图是每次string.gmatch找到匹配项时,它将其写入新字符串并递增计数器。当计数器达到64时,它将插入新行。我预计匹配项的长度将是不规则的。

我不确定它是否按预期运行,或者这是否是我想要格式化字符串的最佳方法。我会感激任何帮助。

点赞
用户5070754
用户5070754

注意:必须在循环外初始化计数器。

local logfile = io.open("input.txt","r")
local inputstring = logfile:read("*all")
local j = 0;
for word in string.gmatch(inputstring, "TERRAIN_%a*") do
    j = j + 1;
    io.write(word);
    if j == 64 then
        io.write'\n';
        j = 1 -- 重置计数器
    end
end
2015-08-14 17:58:51