好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Lua獲取utf8字符串長度和字符串截取并用...代替

Lua獲取utf8字符串長度和字符串截取并用...代替

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

一、LUA獲取utf8字符串長度

復制代碼 代碼如下:

--- 獲取utf8編碼字符串正確長度的方法
-- @param str
-- @return number
function utfstrlen(str)
local len = #str;
local left = len;
local cnt = 0;
local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc};
while left ~= 0 do
local tmp=string.byte(str,-left);
local i=#arr;
while arr[i] do
if tmp>=arr[i] then left=left-i;break;end
i=i-1;
end
cnt=cnt+1;
end
return cnt;
end

二、截取給定字符串的部分長度,超出部分用省略號“.”替換

復制代碼 代碼如下:

--@brief 切割字符串,并用“...”替換尾部
--@param sName:要切割的字符串
--@return nMaxCount,字符串上限,中文字為2的倍數
--@param nShowCount:顯示英文字個數,中文字為2的倍數,可為空
--@note         函數實現:截取字符串一部分,剩余用“...”替換

function GetShortName(sName,nMaxCount,nShowCount)
    if sName == nil or nMaxCount == nil then
        return
    end
    local sStr = sName
    local tCode = {}
    local tName = {}
    local nLenInByte = #sStr
    local nWidth = 0
    if nShowCount == nil then
       nShowCount = nMaxCount - 3
    end
    for i=1,nLenInByte do
        local curByte = string.byte(sStr, i)
        local byteCount = 0;
        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 = nil
        if byteCount > 0 then
            char = string.sub(sStr, i, i+byteCount-1)
            i = i + byteCount -1
        end
        if byteCount == 1 then
            nWidth = nWidth + 1
            table.insert(tName,char)
            table.insert(tCode,1)
           
        elseif byteCount > 1 then
            nWidth = nWidth + 2
            table.insert(tName,char)
            table.insert(tCode,2)
        end
    end
   
    if nWidth > nMaxCount then
        local _sN = ""
        local _len = 0
        for i=1,#tName do
            _sN = _sN .. tName[i]
            _len = _len + tCode[i]
            if _len >= nShowCount then
                break
            end
        end
        sName = _sN .. "..."
    end
    return sName
end

您可能感興趣的文章:
  • .NET截取指定長度漢字超出部分以"..."代替 實例分享
  • Jquery循環截取字符串的方法(多出的字符串處理成"...")
  • (function($){...})(jQuery)的意思
  • 字太多用...代替的方法(兩種)

標簽:濰坊 臺灣 金昌 宣城 儋州 天門 德宏 天門

巨人網絡通訊聲明:本文標題《Lua獲取utf8字符串長度和字符串截取并用...代替》,本文關鍵詞  Lua,獲取,utf8,字符串,長度,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Lua獲取utf8字符串長度和字符串截取并用...代替》相關的同類信息!
  • 本頁收集關于Lua獲取utf8字符串長度和字符串截取并用...代替的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 荡公妇| 白洁少妇成人A片在线观看| 人与野鲁交XXXⅩ免费视频| 试看120分钟| 120秒免费啪啪试看网站| 免费的午夜毛片| 爽好舒服快深一点| 色婷婷国产精品久久包臀 - 百度 婷婷久久综合九色综合色多多蜜臀 | 国产在线欧美日韩精品一区二区| 午夜精品一区二区三区在线视频| 一级特黄aaa大片| 将军野外玩弄皇子H| 99久久久无码国产精品免费中国| 欧美视频国产| 工地被强伦系列小说无弹窗免费阅读 | 欧美肥婆性猛交XXⅩOOO| 欧美成年免费a级| 校花上课翘臀让我进| 国产?日韩?欧美| 精品国产网站| 淫欲的代价电影| 一级做a爰片性色毛片新版的| 91精品国偷拍自产777| 男人舔女人下边| 女人?精AAAA片一级床戏| 二次元美女露出乳胸挤奶| 乱码中文在线观看| 国产真人毛片爱做A级毛潘金莲√| 亚洲白色白色白色视线2| a视频在线观看免费| 女人脱了内裤扒开腿让男生戳视频| 日本高清乱码中文字幕| 波多野结衣精品一区二区三区的剧情介绍 | 夏天偷窥女邻居洗澡| 无码人妻一区二区三区在线视频| GOGOGO高清免费完整版游戏| 精品国产品欧美日产在线| 亚洲AV秘?无码一区浜崎りお | 三级《3D肉蒲团》| 军婚h边走边做| 国产无遮挡又爽又黄大胸免费图片|