濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享

Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享

熱門標(biāo)簽:武漢外呼防封系統(tǒng)多少錢 地圖標(biāo)注大廈 個(gè)人怎么在地圖標(biāo)注需要的店鋪 清朝地圖標(biāo)注哈爾濱 百度地圖標(biāo)注早餐區(qū)域 冀州市地圖標(biāo)注 漳州智云呼電話機(jī)器人 怎么去除地圖標(biāo)注 新岸線智能電銷機(jī)器人

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

遍歷數(shù)組,對(duì)每個(gè)字節(jié)使用string.byte(),發(fā)現(xiàn)有大于127的,就是漢字,可以參照下面的代碼。

二、計(jì)算字符串寬度函數(shù)

復(fù)制代碼 代碼如下:

-- 計(jì)算字符串寬度
 
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 curByte223 then
        byteCount = 2
    elseif curByte>=224 and curByte239 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)

標(biāo)簽:濰坊 德宏 天門 臺(tái)灣 儋州 天門 金昌 宣城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享》,本文關(guān)鍵詞  Lua,判斷,字符串,中,包含,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Lua判斷字符串中包含中文字符的方法和計(jì)算字符串寬度函數(shù)分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    钟山县| 玉溪市| 西林县| 喀喇沁旗| 桂阳县| 剑阁县| 南溪县| 伊通| 临安市| 连城县| 韩城市| 郁南县| 新建县| 湟源县| 洮南市| 荆门市| 浑源县| 万山特区| 鄂托克旗| 东乡县| 清河县| 邮箱| 高平市| 澎湖县| 万荣县| 荥经县| 虎林市| 綦江县| 柳林县| 黔西| 大港区| 定襄县| 阿勒泰市| 宜丰县| 四会市| 临邑县| 胶州市| 施秉县| 绍兴县| 沽源县| 遂昌县|