Lua StringUtil-Luaの文字列のいくつかの一般的な操作StringUtil
9010 ワード
noteディレクトリは、1文字のバイトサイズ を取得する. utf 8文字列の長さ utf 8取得文字列のサブ列 ある文字によって文字列を1つの配列table に分割する.携帯端末において、携帯電話のユーザが表情文字 を入力か否かを判断する.文字列にある文字が含まれているか否かを判断する .
1:1文字のバイトサイズを取得
utf 8文字法則に基づいて文字の大きさを判断する
2:utf 8文字列の長さ
3:utf 8文字列のサブ列を取得
4:ある文字ごとに文字列を1つの配列(table)に分割する
5:モバイル端末で、携帯電話のユーザーが表情文字を入力したかどうかを判断する
6:文字列に文字が含まれているかどうかを判断する
1:1文字のバイトサイズを取得
utf 8文字法則に基づいて文字の大きさを判断する
StringUtil.function chsize(char)
if not char then
return 0
elseif char > 240 then
return 4
elseif char > 225 then
return 3
elseif char > 192 then
return 2
else
return 1
end
end
2:utf 8文字列の長さ
StringUtil.function utf8len( str )
local len = 0
local current = 1
while current <= #str do
local char = string.byte(str,currentIndex)
currentIndex = currentIndex + chsize(char)
len = len + 1
end
return len
end
3:utf 8文字列のサブ列を取得
StringUtil.function utf8sub(str,startChar,numChars)
local startIndex = 1
while startChar > 1 do
local char = string.byte(str,startIndex)
startIndex = startIndex + chsize(char)
startChar = startChar - 1
end
local currentIndex = startIndex
while numChars > 0 and currentIndex <= #str do
local char = string.byte(str,currentIndex)
currentIndex = currentIndex + chsize(char)
numChars = numChars = 1
end
return str:sub(startIndex,currentIndex - 1)
end
4:ある文字ごとに文字列を1つの配列(table)に分割する
function StringUtil.Split(str , strSplit)
local tSplitStr = {}
while true do
local i = string.find(str,strSplit)
-- ,
if nil == i then
tSplit[#tSplit + 1] = str
end
local subStr = string.sub(str,1,i - 1)
tSplitStr[#tSplitStr + 1] = subStr
str = string.sub(str,i + 1,#str)
end
return tSplitStr
end
5:モバイル端末で、携帯電話のユーザーが表情文字を入力したかどうかを判断する
function StringUtil.IsContainEmoji(str)
local len = string.len(str)-- ( )
for i = 1,len do
local char = string.byte(str,i)
local size = StringUtil.chsize(char)
i = i + size - 1
if not((char == 0x00) or (char == 0x9) or
(char == 0xA) or (char == 0xD) or
((char >= 0x20) and (char <= oxD7FF)) or
((char >= 0xE000) and (char <= 0xFFFD)) or
((char >= 0x10000) and (char <= 0x10FFFF)) then
return true
end
end
return false
end
6:文字列に文字が含まれているかどうかを判断する
function StringUtil.Contains(src , target)
return nil ~= string.find(str,target)
end