Lua-字符串拼接


字符串拼接方式

Lua语法糖..

使用..很容易做字符串拼接,只是要注意几点:

  • 第一个拼接元素必须是字符串,比如 1.."a"将会报错
  • 后续元素必须是字符串或数字
  • s = a..b..c..d并不是每一次..连接都产生一个新的字符串,下边的写法才会产生多个新字符串

    local s = ""
    for i = 1,1000 do
        s = s .. i
    end  

table.concat(table, sep, start, end)

Lua table模块内置的concat函数,将table数组部分从start到end位置元素以指定sep连接起来。在大规模字符串合并时,应尽量选择这种方式

使用注意:

  • 链接元素必须都是字符串或者数字

string.format(fmt, […])

和C语言的sprintf类似,可以将不同类型的数据格式化成字符串。


string.rep(str, n)

对某一个字符串或者数字做N次拼接


总结

这四种字符串连接方式,其实实现方式差不多,只是table.concat要先创建一个table再去拼接,string.format需要解析字符串,这些可能会有点耗时,但我觉得影响并不大。在选择连接方式时,只需考虑易用和代码简洁性就可以了。下面有些小建议,仅供参考:

  • 简单且子串较少的字符串拼接,用 ..
local a = "a" .. 1 .. 2
  • 子串多尽量用table.concat
local t = {"a", "b", "c", "d"}
local s = table.concat(t)
  • 有数据格式转换或字符宽度、对齐等要求的用string.format
local a=1
local b="abc"
local s = string.format("id:%02d, name:%04s", a, b)
  • 重复的字符串拼接用string.rep
string.rep("abc", 3)

声明:有无之境|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Lua-字符串拼接


有无之境