24. Lua 字符串缓冲

str1 = "xxxxxxxx"
str2 = str1 .. "wwww"

上面代码 str2 被创建后 , 会从 str1 字符串中把所有字符复制到 str2 , 再添加 "wwww" 字符串 , 效率不高
解决方法 : 字符串缓冲

local buff = ""
for line in io.lines() do
    buff = buff .. line .. "\n"
end

-- buff=20(Bytes/L) * 2500 (L) =5000(B) 50k
-- buff .. 20Byte --> 50020B

io.read("*all")

local t = {}
for line in io.lines() do
    t[#t + 1] = line
end
t[ #t + 1 ] = ""
local s = table.concat( t , "\n" )


-- 采用二分算法 连接字符串
function addstring( stack , s )
    stack[#stack + 1 ] = s  -- 将s压入栈
    for i = #stack - 1 , 1 , -1 do
        if #stack[i] > #stack[i+1] then
            break
        end
        stack[i] = stack[i] .. stack[i+1]
        stack[ i + 1 ] = nil
    end
end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容