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

--------------------------------------------------------------------

--  Create By  SunC 2014/7/1

--  Func:  分割字符串

--  szFullString 要分割的字符串

--  szSeparator  分割字符(此处不能为转义字符,否则请先调用gsub("%.", ",")替换后再拆分)

--  nSplitArray  返回分割后的字符串数组

--------------------------------------------------------------------

function Split(self, szFullString, szSeparator)

  local nFindStartIndex  = 1  ;

  local nSplitIndex   = 1  ;

  local nSplitArray   = {} ;

  --若是空串,不再分割

  if szFullString == nil or szFullString == "" then

    return nSplitArray;

  end

  while true do

    local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) ;

      if not nFindLastIndex then

      nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) ;

      break

    end

    nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)  ;

    nFindStartIndex = nFindLastIndex + string.len(szSeparator) ;  nSplitIndex = nSplitIndex + 1  ;

  end

  return nSplitArray

end

时间: 2024-12-09 04:53:50

lua string的自定义分割字符串接口的相关文章

Lua中用Split函数分割字符串

1 function Split(szFullString, szSeparator) 2 local nFindStartIndex = 1 3 local nSplitIndex = 1 4 local nSplitArray = {} 5 while true do 6 local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) 7 if not nFindLastIndex then 8 n

自定义实现字符串string的接口

用char*管理String类的内存,new动态分配,在析构函数中delete char*指向的new出来的内存,一个string类需要实现那些接口可参考标准库里的string:  http://www.cplusplus.com/reference/string/string/ 实现思路是:在创建String.String需要伸缩(如赋值时需要调整大小.字符串相加也需要更大的空间)时重新new内存,并释放掉原有内存:标准库string的空间是预先分配的,有多余的空间可用,如果string需要伸

SQL Server中自定义函数:用指定的分隔符号分割字符串

2014-11-13 微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对于 特殊字符串的处理,比如:ISBN号 '978-7-5007-7234-7',如果想获取第三个与第四个分割符号之间的数字, 那么SQL 内置函数无法直接做到.这时就需要自定义函数.下面自定义三个函数,用于处理特殊的字符串. 一.按指定符号分割字符串,返回分割后的元素个数 1

C#的String.Split 分割字符串用法详解的代码

代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params char[] separator)2) public string[] Split(char[] separator, int count)3) public string[] Split(char[] separator, StringSplitOptions options)4) public

string反向找位置,分割字符串(只取文件夹路径)

1 #include <uf.h> 2 #include <uf_part.h> 3 #include <atlstr.h> 4 #include <iostream> 5 #include <sstream> 6 7 using std::string; 8 9 10 UF_initialize(); 11 12 //获取当前part的tag 13 tag_t WorkPart = UF_PART_ask_display_part(); 14

【字符串】面试题之以逗号分割字符串,形成二维数组

题目: 有一个字符串符合以下特征("abcdef,acccd,eeee,aaaa,e3eeeee,sssss,"), 要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串,形成二维数组,并把结果传出: 2) 把二维数组行数运算结果也传出. 请自己定义一个接口(函数). 要求1:能正确表达功能的要求,定义出接口(函数)(30分): 要求2:正确实现接口(函数),并实现功能(40分): 要求3:编写正确的测试用例.(30分). //头文件 #include <stdio.h&

LUA string库详解

1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(string [,pos]):返回第pos个字符的整数表示形式.如a为97. string.char(i1,i2...):i1,i2为整型,将i1,i2..等转化为对应的字符然后连接成字符串,并返回.如i1=97则返回a. string.dump(functoin):返回一个参数函数的2进制代码.(

lua string介绍

1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(string [,pos]):返回第pos个字符的整数表示形式.如a为97. string.char(i1,i2...):i1,i2为整型,将i1,i2..等转化为对应的字符然后连接成字符串,并返回.如i1=97则返回a. string.dump(functoin):返回一个参数函数的2进制代码.(疑

分割字符串

#include <stdio.h> #include <string.h> /* 分割字符串 */ int main(void){ char s[100] = "123-456-789-abc-edf"; //strtok第一次调用的时候,第一个参数是字符串, //但第二次调用的时候,第一个参数是NULL const char *buf =strtok(s,"-"); while(buf){ printf("%s\n",