Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享

一、判断字符串中包含中文字符的方法

遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码。

二、计算字符串宽度函数

代码如下:

-- 计算字符串宽度

 

local str = "Jimmy: 你好,世界!"

local fontSize = 20

local lenInByte = #str

local width = 0

 

for i=1,lenInByte do

    local curByte = string.byte(str, i)

    local byteCount = 1;

    if curByte>0 and curByte<=127 then

        byteCount = 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

    end

     

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

    i = i + byteCount -1

     

    if byteCount == 1 then

        width = width + fontSize * 0.5

    else

        width = width + fontSize

        print(char)

    end

end

 

print("总宽度: "..width)

相关推荐