Lua StringUtil - Lua中字符串的一些常用操作StringUtil
note目录
- 获取一个字符占的字节大小
- utf8 字符串的长度
- utf8 获取字符串的子串
- 按某个字符的来切分字符串为一个数组table
- 在移动端判断手机用户是否输入了表情符
- 判断字符串是否包含某个字符
1: 获取一个字符占的字节大小
根据utf8 字符规律来判断字符的大小
StringUtil.function chsize(char)if not char thenreturn 0elseif char > 240 thenreturn 4elseif char > 225 thenreturn 3elseif char > 192 thenreturn 2elsereturn 1end
end
2: utf8 字符串的长度
StringUtil.function utf8len( str )local len = 0local current = 1while current <= #str dolocal char = string.byte(str,currentIndex)currentIndex = currentIndex + chsize(char)len = len + 1endreturn len
end
3: utf8 获取字符串的子串
StringUtil.function utf8sub(str,startChar,numChars)local startIndex = 1while startChar > 1 dolocal char = string.byte(str,startIndex)startIndex = startIndex + chsize(char)startChar = startChar - 1endlocal currentIndex = startIndexwhile numChars > 0 and currentIndex <= #str dolocal char = string.byte(str,currentIndex)currentIndex = currentIndex + chsize(char)numChars = numChars = 1endreturn str:sub(startIndex,currentIndex - 1)
end
4: 按某个字符的来切分字符串为一个数组(table)
function StringUtil.Split(str , strSplit)local tSplitStr = {}while true dolocal i = string.find(str,strSplit)--字符串中没有找到切分的字符,直接返回原字符串if nil == i thentSplit[#tSplit + 1] = strendlocal subStr = string.sub(str,1,i - 1)tSplitStr[#tSplitStr + 1] = subStrstr = string.sub(str,i + 1,#str)endreturn tSplitStr
end
5: 在移动端,判断手机用户是否输入了表情符
function StringUtil.IsContainEmoji(str)local len = string.len(str)--得到的是字符占的字节数(有可能不是字符的个数)for i = 1,len dolocal char = string.byte(str,i)local size = StringUtil.chsize(char)i = i + size - 1if 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)) thenreturn trueend endreturn false
end
6: 判断字符串是否包含某个字符
function StringUtil.Contains(src , target)return nil ~= string.find(str,target)
end
Lua StringUtil - Lua中字符串的一些常用操作StringUtil相关推荐
- Shell脚本中字符串的一些常用操作
Shell脚本中字符串的一些常用操作 字符串长度 ${#string}可以获得${string}的长度 例子: string='How are you' echo ${#string} # 输出结果为 ...
- python中字符串大小写转换常用操作
python中字符串的大小写转换操作 方法名 操作说明 upper() 把字符串中的字符全部转换为大写 lower() 把字符串中的字符全部转换为小写 swapcase() 把原字符串中的字符,大写变 ...
- mysql sql 字符串字段保留数字_SQL字符串以及数字常用操作汇总
SQL字符串以及数字常用操作汇总 更新时间:2013年06月11日 09:05:12 作者: 本篇文章是对SQL字符串以及数字的常用操作进行了详细的总结与分析,需要的朋友参考下 --将字符串中从某 ...
- arcgis select by attributes一次选多个_ArcGIS中属性表的常用操作汇总
ArcGIS中属性表的常用操作汇总 本篇文章将平时对arcgis属性表的相关操作记录下来,防止忘记.此外,在技术摸索中参考了一些gis大牛的博客和技术分享,我在博客结尾也粘贴了他们的博客地址在此表示感 ...
- 用Python轻松搞定Excel中的20个常用操作
来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...
- 用 Python 轻松搞定 Excel 中的 20 个常用操作
来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...
- c#读取excel两列数据并绘制xy曲线_用Python轻松搞定Excel中的20个常用操作
来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...
- python字符串、元组常用操作
常用字符串操作函数: #Author:CGQ name="I \tam ChenGuoQiang" print(name.capitalize())#首字母大写,其他都小写 pri ...
- python中字符串(str)的常用处理方法
str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str) 例:print '%s length ...
最新文章
- Windows PowerShell 2.0语言之字面类型系统
- reg类型变量综合电路_SystemVerilog的一些可综合实用技巧
- Android中创建和响应选项菜单
- xhost display 详解
- 使IE6下PNG背景图片透明的七种方法
- 遍历文件夹下所有文件,编辑删除
- 数据结构专题(二):2.1单链表与顺序表的关系
- golang基础-WaitGroup、kafka消费者
- 平面方程、两平面夹角、点到平面距离
- 大写罗马数字(大写罗马数字3)
- uva_10066	The Twin Towers
- python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250
- P型半导体、N型半导体定义
- Snackbars从顶部滑出的实现
- isosurface matlab,[matlab][isosurface]画隐函数的等值曲线或曲面
- matlab产生单音信号的时域、频域图
- python神经网络训练完了怎么输入得到结果_python神经网络读书笔记
- 推荐5款免费无广告的精品软件
- kindle 3中文无乱码、改默认词典、增加屏保及截屏快捷键等
- mysql 自增_mysql自增