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

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    这篇文章主要介绍了Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享,需要的朋友可以参考下

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

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

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

    二、计算字符串宽度函数

    代码如下:

    -- 计算字符串宽度

    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)

最新文章