设为首页 - 加入收藏 站长在线 - 常用服务器软件 - 在线站长工具 - 在线伪原创工具
您的当前位置:主页 > 脚本教程 > Lua > 正文

Lua判定字符串前缀是否为指定字符的3种要领

来源:未知 编辑:zzwww 时间:2019-12-13

在写 lua debugger 的时辰,我必要判定一个字符串的前缀是不是 "@" 。

有三个方案:

1.较量直观的是 string.sub(str,1,1) == "@"
2.感受效率较量高的是 string.byte(str) == 64
3.可能是 string.find(str,"@") == 1

我保举第三种。(注:在此特定运用情形下。由于用于鉴定 source 的文件名,大大都环境都是 @ 开头。假如功效为非,则机能较低)

第一方案 string.sub 会在天生子串的时辰做一次字符串 hash ,,感受效率会略微低一些。

第二方案效率应该是最好,可是必要记着 @ 的 ascii 码 64 。假如前缀是多个字符也不合用。

机能比拟测试:

复制代码代码如下:

string.find(sb, "@") == 1 3.671
string.find(sb, "^@") ~= 1 3.735
string.byte(sa) == 64 2.14
string.char(string.byte(sb)) == "@" 4.375
string.sub(sb,1,1) == "@" 2.766
sb[1] == "@" 0.984

 

要想办理不以@开头时的机能题目,可以改成这样:

复制代码代码如下:

string.find(str,"^@") == 1

 


TAG标签:

相关推荐:

网友评论:

文章右边250
Top