• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua判断字符串前缀是否为指定字符的3种方法

Lua判断字符串前缀是否为指定字符的3种方法

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了lua获取字符串长度,lua 字符串,lua 字符串截取,lua字符串分割,lua 字符串转换数字等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在写 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
</div>

要想解决不以@开头时的性能问题,可以改成这样:
string.find(str,"^@") == 1
</div>

</div>

您可能想查找下面的文章:

  • Lua判断字符串前缀是否为指定字符的3种方法
  • Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享
  • Lua操作字符串的5个代码片段分享
  • Lua之字符串格式化例子和常用格式化参数介绍
  • Lua文件读写详解

相关文章

  • Lua中创建全局变量的小技巧(禁止未预期的全局变量)
  • 获取Lua表结构(table)数据实例
  • Lua中的变量类型与语句学习总结
  • Lua实现正序和倒序的文件读取方法
  • lua脚本实现自动生成APK包
  • Lua教程之弱引用table
  • Lua教程(六):绑定一个简单的C++类
  • Lua中的函数相关知识点整理汇总
  • Lua中类的实现原理探讨(Lua中实现类的方法)
  • 安装Nginx+Lua开发环境

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Lua极简入门指南(一):基础知识篇
    • Lua中的数学库总结
    • Lua中访问table里函数的方法示例
    • Lua中的函数相关知识点整理汇总
    • Lua中的迭代器浅析
    • Lua脚本语言基本语法快速入门教程
    • Lua中..和#运算符的使用方法
    • Lua loadstring函数用法实例
    • C调用lua函数需要考虑的问题
    • Lua中简单的错误处理实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有