Lua自己实现string.split功能

local function split(str, d) --str是需要查分的对象 d是分界符
	local lst = { }
	local n = string.len(str)--长度
	local start = 1
	while start <= n do
		local i = string.find(str, d, start) -- find 'next' 0
		if i == nil then
			table.insert(lst, string.sub(str, start, n))
			break
		end
		table.insert(lst, string.sub(str, start, i-1))
		if i == n then
			table.insert(lst, "")
			break
		end
		start = i + 1
	end
	return lst
end

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

function string.split(input, delimiter)
    input = tostring(input)
    delimiter = tostring(delimiter)
    if (delimiter=='') then return false end
    local pos,arr = 0, {}
    -- for each divider found
    for st,sp in function() return string.find(input, delimiter, pos, true) end do
        table.insert(arr, string.sub(input, pos, st - 1))
        pos = sp + 1
    end
    table.insert(arr, string.sub(input, pos))
    return arr
end
时间: 2024-12-28 12:24:40

Lua自己实现string.split功能的相关文章

Lua 自定义函数string.split

function string.split(str, delimiter)    if str==nil or str=='' or delimiter==nil then        return nil    end        local result = {}    for match in (str..delimiter):gmatch("(.-)"..delimiter) do        table.insert(result, match)    end    r

lua字符串分割 string.split实现

function Split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSpli

lua实现string的split功能

function split(str,sp) local result = {} local i = 0 local j = 0 local num = 1 local pos = 0 while true do i , j = string.find(str,sp,i+1) if i == nil then if num ~=1 then result[num] = string.sub(str,pos,string.len(str)) end break end result[num] =

【lua】lua string.match 和 string.split 从字符串中寻找特定字符串并保存

local string = "{1,2,3,4}" local traString=string.match(string , "%d+,%d+,%d+,%d+") --此时tranString = "1,2,3,4",去掉"{","}" string = string.split(tranString , ",") string = {1,2,3,4} string[1]=1 str

lua中打印所以类型功能实现table嵌套table

lua中打印所以类型功能实现 本人测试 number.string.bool.nil.table嵌套table.userdata没问题 共享一下有什么问题请拍砖 代码如下 cclog = function( ... ) local tv = "\n" local xn = 0 local function tvlinet(xn) -- body for i=1,xn do tv = tv.."\t" end end local function printTab(i

.NET 中String类功能分类概述

一.比较功能 String.Compare: 成员函数 返回值 功能 String.Compare 小于零.零.大于零. 1.比较两个字符串的大小(按照一定规则) 2.比较两个字符串中子字符串的大小. String.CompareOrdinal 成员函数 返回值 功能 String.CompareOrdinal 一个整数,指示两个比较字之间的词法关系 通过计算每个字符串中相应 Char 对象的数值来比较两个指定的 String 对象. String.Equals 成员函数 返回值 功能 Stri

String.split引发的“内存泄露”

一直赞叹Sun对待技术的严谨和优雅(bless Sun).Sun JDK中Java库的源代码,连注释都清清楚楚.规规范范,javadoc注解的使用也一丝不苟,读起来很熟舒服.因此,在日常工作和学习中,经常读读 Java库的源代码,不亦乐乎?如果遇到诡异问题,源代码的帮助就更大了. 闲话少说,回归正题.这几天,一直在为Java的“内存泄露”问题纠结.Java应用程序占用的内存在不断的.有规律的上涨,最终超过了监控阈值. 福尔摩斯不得不出手了! 说起Java的内存泄露,其实定义不是那么明确.首先,如

StringTokenizer类与String.split()的区别

一.StringTokenizer:字符串分隔解析类型属于:java.util包. 1.构造函数. 1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象.java默认的分隔符是"空格"."制表符('\t')"."换行符('\n')"."回车符('\r')".2. StringTokenizer(String str, String delim) :构造一个用

字符串切分 String.Split 和 Regex.Split

当切割字符串的是单个字符时可使用String.Split string strSample="ProductID:20150215,Categroy:Food,Price:15.00"; string[] sArray=strSample.Split(',');    //注意,这里用的是单引号,而非双引号 当切割字符串的是多个字符时只能使用Regex.Split string strSample="ProductID:20150215$_$Categroy:Food$_$P