Luaは文字間に指定文字を挿入する

2843 ワード

声明:本文は他の場所からコピーして、原文の作者の分かち合いに感謝します.
function string_insert(str,insertStr) 
    local len = #str; 
    local left = len; 
    local cnt = 0; 
    local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; 
    local indx = -left; 
    local newstr = ""; 
    while left ~= 0 do 
        local tmp=string.byte(str,-left); 
        local i=#arr; 
        while arr do 
            if tmp>=arr[i] then  
                left=left-i; 
                break; 
            end 
            i=i-1;             
        end 
        local substr = string.sub(str,indx,-left - 1); 
        if left ~= 0 then 
            newstr = newstr .. substr .. insertStr; 
        else 
            newstr = newstr .. substr; 
        end 

        indx = -left; 
        cnt=cnt+1; 
    end 
    return newstr; 
end
str = 'abcdefg'
insertStr = ','
newstr:
a,b,c,d,e,f,g