欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

lua 获取字符串长度

程序员文章站 2024-02-25 15:55:45
...

注意区分几种不同的字符。
lua代码如下:

function string.widthSingle(inputstr)
    -- 计算字符串宽度
    -- 可以计算出字符宽度,用于显示使用
   local lenInByte = #inputstr
   local width = 0
   local i = 1
   while (i<=lenInByte) 
    do
        local curByte = string.byte(inputstr, i)
        local byteCount = 1;
        if curByte>0 and curByte<=127 then
            byteCount = 1                                           --1字节字符
        elseif curByte>=192 and curByte<223 then
            byteCount = 2                                           --双字节字符
        elseif curByte>=224 and curByte<239 then
            byteCount = 3                                           --汉字
        elseif curByte>=240 and curByte<=247 then
            byteCount = 4                                           --4字节字符
        end

        local char = string.sub(inputstr, i, i+byteCount-1)
        print(char)                                                         

        i = i + byteCount                                 -- 重置下一字节的索引
        width = width + 1                                 -- 字符的个数(长度)
    end
    return width
end