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相关推荐

  1. Shell脚本中字符串的一些常用操作

    Shell脚本中字符串的一些常用操作 字符串长度 ${#string}可以获得${string}的长度 例子: string='How are you' echo ${#string} # 输出结果为 ...

  2. python中字符串大小写转换常用操作

    python中字符串的大小写转换操作 方法名 操作说明 upper() 把字符串中的字符全部转换为大写 lower() 把字符串中的字符全部转换为小写 swapcase() 把原字符串中的字符,大写变 ...

  3. mysql sql 字符串字段保留数字_SQL字符串以及数字常用操作汇总

    SQL字符串以及数字常用操作汇总 更新时间:2013年06月11日 09:05:12   作者: 本篇文章是对SQL字符串以及数字的常用操作进行了详细的总结与分析,需要的朋友参考下 --将字符串中从某 ...

  4. arcgis select by attributes一次选多个_ArcGIS中属性表的常用操作汇总

    ArcGIS中属性表的常用操作汇总 本篇文章将平时对arcgis属性表的相关操作记录下来,防止忘记.此外,在技术摸索中参考了一些gis大牛的博客和技术分享,我在博客结尾也粘贴了他们的博客地址在此表示感 ...

  5. 用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  6. 用 Python 轻松搞定 Excel 中的 20 个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  7. c#读取excel两列数据并绘制xy曲线_用Python轻松搞定Excel中的20个常用操作

    来源 |早起Python(ID: zaoqi-python) Excel与Python都是数据分析中常用的工具,本文将使用动态图(Excel)+代码(Python)的方式来演示这两种工具是如何实现数据 ...

  8. python字符串、元组常用操作

    常用字符串操作函数: #Author:CGQ name="I \tam ChenGuoQiang" print(name.capitalize())#首字母大写,其他都小写 pri ...

  9. python中字符串(str)的常用处理方法

    str='python String function' 生成字符串变量str='python String function' 字符串长度获取:len(str) 例:print '%s length ...

最新文章

  1. Windows PowerShell 2.0语言之字面类型系统
  2. reg类型变量综合电路_SystemVerilog的一些可综合实用技巧
  3. Android中创建和响应选项菜单
  4. xhost display 详解
  5. 使IE6下PNG背景图片透明的七种方法
  6. 遍历文件夹下所有文件,编辑删除
  7. 数据结构专题(二):2.1单链表与顺序表的关系
  8. golang基础-WaitGroup、kafka消费者
  9. 平面方程、两平面夹角、点到平面距离
  10. 大写罗马数字(大写罗马数字3)
  11. uva_10066 The Twin Towers
  12. python爬虫数据可视化豆瓣评分top250_Python数据可视化:豆瓣电影TOP250
  13. P型半导体、N型半导体定义
  14. Snackbars从顶部滑出的实现
  15. isosurface matlab,[matlab][isosurface]画隐函数的等值曲线或曲面
  16. matlab产生单音信号的时域、频域图
  17. python神经网络训练完了怎么输入得到结果_python神经网络读书笔记
  18. 推荐5款免费无广告的精品软件
  19. kindle 3中文无乱码、改默认词典、增加屏保及截屏快捷键等
  20. mysql 自增_mysql自增

热门文章

  1. 计算机界面不显示u盘启动不了,电脑店启动时直接加载进pe界面,而不显示菜单?...
  2. 数学建模——皮尔逊person相关系数VS斯皮尔曼spearman相关系数学习笔记
  3. 删除排序链表中重复元素的方法
  4. leetCode883
  5. G41J—6型阀体双面钻24孔专用机床上的夹具设计(说明书 CAD图纸 开题报告 液压原理图 工序图 机床生产率计算卡)
  6. java36选7_java抽奖程序
  7. SQLmap注入教程
  8. visio-使用技巧
  9. 折戟IPO,Soul遭遇了什么?
  10. JLINK V10 V11固件修复