lua如何从字符串提取某一个字符
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
你的问题说得也糊涂,没看懂。字符串都是"..."这种形式的。
对于一个字符串,无论是用单引号还是双引号包围起来效果是一样的。
举个例子吧:
> s = 'e'
> t = "e"
> if s == t then print("equal") end
equal
> print('e is good')
e is good
要是非得想要c风格的话,也可以试试string.byte()这个函数。
> s = 'abcdefghij'
> = string.byte(s, 5)
101