2015-08-14 33 views
1

我想在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 

我的本意是,每次string.gmatch找到一个匹配,就会写出来一个新的字符串和递增计数器。当计数器达到64时,它将插入一条新的线。我预计比赛的长度是不规则的。

我不确定它的行为如预期,或者这是格式化字符串的最佳方法,就像我想要的。 Id感谢任何帮助。

回答

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 
+0

哈 - 谢谢。输出看起来更接近我期待的。 – mwir