lua分割字符串终究版(转载,有改动)
--根据首字节获取UTF8需要的字节数
local function GetUTF8CharLength(ch)
local utf8_look_for_table = {
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , ,
}
return utf8_look_for_table[ch]
end
--根据UTF8流获取字符串长度
--GetUTF8Length("一二三四五六七") 返回7
local function GetUTF8Length(str)
repeat
local char = string.byte(str, ptr)
local char_len = GetUTF8CharLength(char)
len = len +
ptr = ptr + char_len
until(ptr>#str)
return len
end
--截取UTF8字符串
--SubUTF8String("一二三四五六七",1,3) 返回一二三
local function SubUTF8String(str, begin, length)
begin = begin
length = length --length为-1时代表不限制长度
local ret = ""
repeat
local char = string.byte(str, ptr)
local char_len = GetUTF8CharLength(char)
len = len +
or len<begin+length) then
,char_len- do
ret = ret .. string.char( string.byte(str, ptr + i) )
end
end
ptr = ptr + char_len
until(ptr>#str)
return ret
end
local function test(str, len)
local ret = {}
,math.ceil(GetUTF8Length(str)/len) do
ret[i] = SubUTF8String(str, (i-)*len + , len)
end
return ret
end
local str = "游戏程序员们是一群对技术最精益求精、心理素质最好、工作最勤奋的人!"
))do
print(k,v)
end
Output:
游
戏
程
序
员
们
是
一
群
对
技
术
最
精
益
求
精
、
心
理
素
质
最
好
、
工
作
最
勤
奋
的
人
!
lua分割字符串终究版(转载,有改动)的更多相关文章
- lua分割字符串
str = "abc;123;345" local tab = string.split(str, ";") 然后list里面就是 abc123345 了.第二 ...
- lua 分割字符串
-- 参数:待分割的字符串,分割字符 -- 返回:子串表.(含有空串) function split(str, split_char) local sub_str_tab = {} while tru ...
- 【转载】C#使用Split函数根据特定分隔符分割字符串
在C#程序开发过程中,很多时候可能需要将字符串根据特定的分割字符分割成字符或者List集合,例如根据逗号将字符串分割为数组,或者根据竖线将字符串分割成数组,C#中提供了Split()函数来快速将字符串 ...
- lua string的自定义分割字符串接口
-------------------------------------------------------------------- -- Create By SunC 2014/7/1 -- ...
- SQLServer实现split分割字符串到列
网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题. 先贴上某大牛写的sp ...
- Python:笔记1_字符串处理【转载】
[转载自:https://www.cnblogs.com/houht/p/3308634.html] 1. 判断字符串str是否为空Approach 1:如果字符串长度为0,说明字符串为空,code如 ...
- Chromium base库分割字符串SplitString
前一段时间在工作过程中遇到一个场景需要将http response中的request header中的cookie字段取出并进行解析,但是手头没有解析cookie的工具类,同时cookie的表现就是个 ...
- Delphi中stringlist分割字符串的用法
Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...
- C语言分割字符串
最近在做一道C语言题目的时候需要用到分割字符串,本来想自己手写的,也不会很麻烦,但想到其他语言都有分割字符串的库函数,C语言怎么会没有呢?所以,在网上搜了一搜,果然有这样的函数,还是很好用的,在此总结 ...
随机推荐
- [POJ] #1008# Maya Calendar : 字符处理/同余问题
一. 题目 Maya Calendar Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 74085 Accepted: 2 ...
- html5 canvas 旋转扩大
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Connecting Physics Bodies
[Connecting Physics Bodies] The kinds of joints you can create in Sprite Kit. You add or remove join ...
- 思科ASA系列防火墙配置手册
使用console连接线登录方法 1.使用cisco的console连接线,连接设备的console口和计算机com口(笔记本用USB转COM口连接线)2.使用超级终端或secureCRT软件连接设备 ...
- Java抽象类和内部类
类(class) 类是相似对象中共同属性和方法的集合体 在面向对象中定义类,就是在描述事物,就是在定义属性(变量)和行为(方法).属性和行为共同成为类中的成员(成员变量和成员方法). 封装.继承和多态 ...
- qq邮箱发送
454 Authentication failed, please open smtp flag first!用QQ邮箱测试报错 我用QQ邮箱测试javamail发送邮件的功能,用户名密码设置正确,却 ...
- AJAX小练习,防止以后忘记
<div id="content"> <input id="btnShow" type="button" value=&q ...
- .net 学习资源(转)
名称:快速入门地址:http://chs.gotdotnet.com/quickstart/描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例 ...
- 服务器资源共享--IIS站点/虚拟目录中访问共享目录(UNC)
本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS建立站点的时候,会遇到如何把多台服务器的资源合并到一起的问题.如何让A服务 ...
- GetSafeHwnd()函数解释[转]
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ ...