lua字符串分割

原创 2016年11月11日 15:27:22

  最近在工作中遇到需要对字符串按某个字符分割处理,然后遇到了一下小问题,在这里介绍一下自己的处理方法和理解。

  具体问题就是:我希望将这样一个lua字符串”1.3.6.4.2.13”根据右下角的”.”将它分割之后将元素存入一个表中,如果是在C语言中,很方便地就能索引到每一个点以及元素,但是在lua中,你不能用下标的方式去访问一个字符串中的字符,也就是说 : 如果str = “1.3.6.4.2.13” , 那么str[1],str[2]这样的访问方式就是非法的,那么我需要知道下标为i的元素值应该怎么办呢?

  幸好lua提供了非常丰富的字符串库来支持这一操作,我采用的方法就是string.sub(str,start,end)

  string.sub(str,start,end)函数用法很简单,它接收三个参数,第一个就是要处理的字符串str,第二个即要返回的字符串的起始索引,第三个则是要返回的字符串的结束索引,拿上文中的字符串举例,string.sub(str,1,5)返回的就是”1.3.6”这个字符串,string.sub(str,1,6)则返回字符串”1.3.6.”,所以,想要返回一个字符的话,只要将后面两个参数设置为相同索引即可,只不过lua没有字符(char)类型,只有string类型。

  下面是我用来分割字符串的可执行代码

local str = "1.3.6.1.4.1.22.11.19.62.71"
local index = {}
local oid = {}
for k = 1,string.len(str) do
  if string.sub(str,k,k) == '.' then
    table.insert(index,k)
  end
end

table.insert(oid,string.sub(str,1,index[1]-1))
  for k=1,#index-1 do
    table.insert(oid,string.sub(str,index[k]+1,index[k+1]-1))
  end
table.insert(oid,string.sub(str,index[#index]+1,string.len(str)))
return oid
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

lua string.byte 中文处理

学习笔记
  • jihadwk
  • jihadwk
  • 2015年10月09日 10:36
  • 4291

Lua string split分割字符串

-- 分隔字符串 function string:split(sep) local sep, fields = sep or "\t", {} local pattern = stri...

LUA极速字符串分割split函数实现

不多说,发现lua的string没有提供split函数,只好写了个。 //创建部分 //基于源字符串,时间复杂度O(n),空间复杂度O(1) LUA_API int split(lua_Stat...

Lua 用指定字符或字符串分割输入字符串,返回包含分割结果的数组

用指定字符或字符串分割输入字符串,返回包含分割结果的数组

Lua按指定字符分隔字符串的3种方法

1.function split( str,reps ) local resultStrList = {} string.gsub(str,'[^'..reps..']+',funct...

Lua中分割字符串

function Split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 loca...

Lua字符串中的中英文分割处理

-- 计算 UTF8 字符串的长度,每一个中文算一个字符 -- @function [parent=#string] utf8len -- @param string input 输入字符串 -- @...

Lua中用Split函数分割字符串

function Split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSpl...

lua用指定字符串切割另一个字符串

用到了lua的操作字符串方法 string.find, string.sub 具体请看代码 -- 用指定字符串切割另一个字符串 local function strSplit(delimeter,...

LUA 应用切割包含特殊开始,结束字符串的内容

应用切割包含特殊开始,结束字符串的内容 -- 获取目标字符串 _sStr(string) 字符串内容 _sFir(string) 开始符号 _sFin(string) 结束符号 -- _sp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua字符串分割
举报原因:
原因补充:

(最多只允许输入30个字)