最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年04月20日 11:51:15   投稿:junjie  
這篇文章主要介紹了Lua獲取utf8字符串長度和字符串截取并用...代替,本文直接給出兩個函數(shù)的實現(xiàn)代碼,需要的朋友可以參考下

一、LUA獲取utf8字符串長度

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

--- 獲取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

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

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

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

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

相關(guān)文章

  • Lua中table里內(nèi)嵌table的例子

    Lua中table里內(nèi)嵌table的例子

    這篇文章主要介紹了Lua中table里內(nèi)嵌table的例子,本文同時講解了如何訪問內(nèi)嵌table方法的例子,需要的朋友可以參考下
    2015-04-04
  • Lua教程(五):迭代器和泛型for

    Lua教程(五):迭代器和泛型for

    這篇文章主要介紹了Lua教程(五):迭代器和泛型for,本文講解了迭代器與Closure、泛型for的語義、 無狀態(tài)迭代器的例子、 具有復(fù)雜狀態(tài)的迭代器等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Lua極簡入門指南:全局變量

    Lua極簡入門指南:全局變量

    這篇文章主要介紹了Lua極簡入門指南:全局變量,本文講解了全局變量、_ENV等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Lua利用cjson讀寫json示例分享

    Lua利用cjson讀寫json示例分享

    本文結(jié)合本人的實際使用經(jīng)驗和代碼示例,介紹如何在Lua中對json進行encode和decode,需要的朋友可以參考下
    2014-11-11
  • Lua中的變量與賦值方法

    Lua中的變量與賦值方法

    今天小編就為大家分享一篇關(guān)于Lua中的變量與賦值方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Lua面向?qū)ο笾惡屠^承淺析

    Lua面向?qū)ο笾惡屠^承淺析

    這篇文章主要介紹了Lua面向?qū)ο笾惡屠^承淺析,本文講解了一些Lua面向?qū)ο蟮囊恍┲R,需要的朋友可以參考下
    2014-09-09
  • Lua教程(二):基礎(chǔ)知識、類型與值介紹

    Lua教程(二):基礎(chǔ)知識、類型與值介紹

    這篇文章主要介紹了Lua教程(二):基礎(chǔ)知識、類型與值介紹,本文講解了Hello World程序、代碼規(guī)范、全局變量、類型與值等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Lua性能優(yōu)化技巧(三):關(guān)于表

    Lua性能優(yōu)化技巧(三):關(guān)于表

    這篇文章主要介紹了Lua性能優(yōu)化技巧(三):關(guān)于表,本文講解了一些關(guān)于表的優(yōu)化技巧,需要的朋友可以參考下
    2015-04-04
  • Lua中訪問table里函數(shù)的方法示例

    Lua中訪問table里函數(shù)的方法示例

    這篇文章主要介紹了Lua中訪問table里函數(shù)的方法示例,本文例子超級簡單,算是入門實例吧,其實只需要表名.方法名即可訪問,重要的還是其它代碼寫法,本文給出了一個完整的代碼示例,需要的朋友可以參考下
    2015-04-04
  • Lua中的捕獲機制和轉(zhuǎn)換技巧介紹

    Lua中的捕獲機制和轉(zhuǎn)換技巧介紹

    這篇文章主要介紹了Lua中的捕獲機制和轉(zhuǎn)換技巧介紹,捕獲是這樣一種機制:可以使用模式串的一部分匹配目標串的一部分,將你想捕獲的模式用圓括號括起來,就指定了一個捕獲,需要的朋友可以參考下
    2014-11-11

最新評論

钦州市| 甘德县| 乐亭县| 深州市| 津南区| 霍州市| 呼图壁县| 资兴市| 九龙县| 星子县| 望都县| 个旧市| 康保县| 手机| 金溪县| 类乌齐县| 长沙县| 自贡市| 蒲城县| SHOW| 观塘区| 五寨县| 崇文区| 会东县| 洪雅县| 收藏| 琼海市| 广河县| 安康市| 望江县| 景宁| 塔河县| 绵阳市| 大方县| 尉犁县| 犍为县| 白河县| 广西| 永吉县| 平南县| 洛隆县|