我想在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
端
我的意图是每次string.gmatch找到匹配项时,它都会将其写入新字符串并递增计数器。当计数器达到64时,它将插入一个新行。我希望比赛的长度是不规则的。
我不确定它是否按预期运行,或者这是格式化字符串的最佳方法。我很感激任何帮助。
答案 0 :(得分:1)
请注意,您必须在循环外初始化计数器。
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 -- reset the counter
end
end