来源http://codepad.org/BRHIS6WA

 --根据首字节获取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分割字符串终究版(转载,有改动)的更多相关文章

  1. lua分割字符串

    str = "abc;123;345" local tab = string.split(str, ";") 然后list里面就是 abc123345 了.第二 ...

  2. lua 分割字符串

    -- 参数:待分割的字符串,分割字符 -- 返回:子串表.(含有空串) function split(str, split_char) local sub_str_tab = {} while tru ...

  3. 【转载】C#使用Split函数根据特定分隔符分割字符串

    在C#程序开发过程中,很多时候可能需要将字符串根据特定的分割字符分割成字符或者List集合,例如根据逗号将字符串分割为数组,或者根据竖线将字符串分割成数组,C#中提供了Split()函数来快速将字符串 ...

  4. lua string的自定义分割字符串接口

    -------------------------------------------------------------------- --  Create By  SunC 2014/7/1 -- ...

  5. SQLServer实现split分割字符串到列

    网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题. 先贴上某大牛写的sp ...

  6. Python:笔记1_字符串处理【转载】

    [转载自:https://www.cnblogs.com/houht/p/3308634.html] 1. 判断字符串str是否为空Approach 1:如果字符串长度为0,说明字符串为空,code如 ...

  7. Chromium base库分割字符串SplitString

    前一段时间在工作过程中遇到一个场景需要将http response中的request header中的cookie字段取出并进行解析,但是手头没有解析cookie的工具类,同时cookie的表现就是个 ...

  8. Delphi中stringlist分割字符串的用法

    Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...

  9. C语言分割字符串

    最近在做一道C语言题目的时候需要用到分割字符串,本来想自己手写的,也不会很麻烦,但想到其他语言都有分割字符串的库函数,C语言怎么会没有呢?所以,在网上搜了一搜,果然有这样的函数,还是很好用的,在此总结 ...

随机推荐

  1. R语言简单入门

    一.运行R语言可以做哪些事? 1.探索性数据分析(将数据绘制图表) 2.统计推断(根据数据进行预测) 3.回归分析(对数据进行拟合分析) 4.机器学习(对数据集进行训练和预测) 5.数据产品开发 二. ...

  2. 使用sem_post信号量进行线程同步

    写了一小段程序,测试一下线程同步的问题,如下: #include <stdio.h> #include <string.h> #include <semaphore.h& ...

  3. java反射工具类

    package com.yingchao.kgou.core; import java.lang.reflect.Field; import java.lang.reflect.InvocationT ...

  4. datatable把一个LIst的数据放入两个colum防止窜行的做法

    DataColumn objectOne = new DataColumn("objectOne", typeof(object)); dt.Columns.Add(objectO ...

  5. POJ2533Longest Ordered Subsequence(DP)

    http://poj.org/problem?id=2533 在经典不过的DP题目了.... #include <map> #include <set> #include &l ...

  6. iOS Framework lipo报错 lipo: can't map input file

    fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ ...

  7. hdoj 5355 Cake(分析+二分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5355 分蛋糕的题目,有1-n大小的n个蛋糕,要求平均分成m份,不能切开蛋糕 #include<s ...

  8. 解决window8 下连接PLSQL 报ora-12154错误

    操作系统版本:window8 64位企业版 数据库:oracle10g2 安装PLSQL,登录PLSQL报ORA-12154错误. 首先:所以需要下载一个32位客户端,我同时也下载了64位客户端,具体 ...

  9. 如何加入自定义WebControl

    http://www.screencast.com/users/Dennis.Garavsky/folders/Default/media/c75b4ec6-1641-4f82-936e-39360d ...

  10. Gulp 学习总结

    Gulp 自动化工具开发非常方便,便于上手,值得使用. 一.Gulp安装 gulp是基于NodeJS运行的,所以需要想安装NodeJS.  http://nodejs.org/download/ 安装 ...