假设
s="abcdefghij"
想要提取第5个字符'e'要用什么函数?
刚开始我想的是string.sub(s,5,5)
但是提取出来的是字符串"e"而不是'e'字符
请问要如何处理
打个比方
在VC里CString str="abcdefg"
获取第5个用的就是str.GetAt(4)
换到LUA里呢?
------------------
1楼我什么地方说不清楚
字符串s="abcdefghij"有什么不对
lua里不像c一样区分字符串和字符。
比如:
b = a:match("gig.-gvt") --提取包含头尾的字符串
print(b:sub(4, string.len(b)-3)) --去除头尾
总的来说通过string.match或者string.sub来提取字符串,结合patterns(弱化版的正则表达式)进行通配;具体得视源字符串的数据特征而定。
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
扩展资料:
Lua还具有其它一些特性:同时支持面向过程(procedure-oriented)编程和函数式编程(functional programming);自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;语言内置模式匹配;
闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
参考资料来源:百度百科-lua