来源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. 上传控件swfupload的使用笔记

    1.下载下来的官方domo里不同的例子里会引入各自的JS,注意区分.可以直接拿官方例子来改成自己想要的例子. 2.注意PHP配置文件里也有最大上传文件限制,如果文件太大会上传不成功. 3.如果有问题可 ...

  2. js运动 摩擦运动

    <!DOCTYPE HTML> <HTML> <meta http-equiv="Content-Type" content="text/h ...

  3. 关于对javascript 提升概念 的总结与思考。

    最近在看一本新买的书叫<你不知道的javascript上卷>..买到这本书也算是个巧合 不过真是物有所值.它对js的几个高级概念都做了非常深刻的描述和通过一些通俗易懂的方式来让我们理解.这 ...

  4. Java ClassLoader 原理详细分析

    一.什么是ClassLoader? 大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程 ...

  5. HDU 5858 Hard problem (数学推导)

    Hard problem 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5858 Description cjj is fun with ...

  6. shell's glob

    [shell's glob] basic glob example: range glob example: 参考: http://bash.cumulonim.biz/glob.html

  7. Mac 与 PC 键盘布局对比

  8. Python基础 条件、循环

    1.条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. if if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的 ...

  9. ruby中实例变量、类变量等等的区别和联系

    ruby的变量有局部变量,全局变量,实例变量,类变量,常量. 1.局部变量 局部变量以一个小写字母开头或下划线开头 局部变量有局部作用域限制(比如一个block内),它的作用域起始于声明处,结束于该声 ...

  10. commondline 之三 执行jar文件

    java [-options] -jar jarfile [args...] 点击查看获取可执行jar文件方法