lua如何从字符串提取某一个字符

假设s="abcdefghij"想要提取第5个字符'e'要用什么函数?刚开始我想的是string.sub(s,5,5)但是提取出来的是字符串"e"而不是'e'字符请问要如... 假设
s="abcdefghij"
想要提取第5个字符'e'要用什么函数?
刚开始我想的是string.sub(s,5,5)
但是提取出来的是字符串"e"而不是'e'字符
请问要如何处理
打个比方
在VC里CString str="abcdefg"
获取第5个用的就是str.GetAt(4)
换到LUA里呢?
------------------
1楼我什么地方说不清楚
字符串s="abcdefghij"有什么不对
展开
 我来答
帐号已注销
2020-02-18 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:166万
展开全部

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

听我唠叨唠叨
2010-03-02 · TA获得超过2812个赞
知道大有可为答主
回答量:5574
采纳率:33%
帮助的人:1476万
展开全部
这样的问题最好到csdn论坛去。

你的问题说得也糊涂,没看懂。字符串都是"..."这种形式的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glight99
推荐于2017-11-23 · TA获得超过889个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:229万
展开全部
你还是应该先看一下lua的语法。lua里不像c一样区分字符串和字符。
对于一个字符串,无论是用单引号还是双引号包围起来效果是一样的。

举个例子吧:
> 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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式