Lua判断字符串前缀是否为指定字符的3种方法
在写 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
相关推荐
-
Lua判断字符串前缀是否为指定字符的3种方法
在写 lua debugger 的时候,我需要判断一个字符串的前缀是不是 "@" . 有三个方案: 1.比较直观的是 string.sub(str,1,1) == "@" 2.感觉效率比较高的是 string.byte(str) == 64 3.或者是 string.find(str,"@") == 1 我推荐第三种.(注:在此特定运用环境下.因为用于判定 source 的文件名,大多数情况都是 @ 开头.如果结果为非,则性能较低) 第一方案 s
-
python统计字符串中指定字符出现次数的方法
本文实例讲述了python统计字符串中指定字符出现次数的方法.分享给大家供大家参考.具体如下: python统计字符串中指定字符出现的次数,例如想统计字符串中空格的数量 s = "Count, the number of spaces." print s.count(" ") x = "I like to program in Python" print x.count("i") PS:本站还提供了一个关于字符统计的工具,感兴
-
C#判断字符串中是否包含指定字符串及contains与indexof方法效率问题
正文 #方法一:使用string.Contains方法 string.Contains是大小写敏感的,如果要用该方法来判断一个string是否包含某个关键字keyword,需要把这个string和这个keyword都转成小写或大写再调用Contains方法: string key = "bbb"; string temp = "aaaBBBcccDDD"; bool isContains= temp.ToLower().Contains(key.ToLower()
-
java 判断字符串中是否有重复字符的示例
如下所示: /** * 判断字符串是否包含重复字符 * @param str * @return */ public static boolean containRepeatChar(String str){ if(str==null||str.isEmpty()){ return false; } char[] elements=str.toCharArray(); for(char e:elements){ if(str.indexOf(e)!=str.lastIndexOf(e)){ re
-
Java如何去掉指定字符串的开头的指定字符
Java去掉指定字符串的开头的指定字符 /** * 去掉指定字符串的开头的指定字符 * @param stream 原始字符串 * @param trim 要删除的字符串 * @return */ public static String StringStartTrim(String stream, String trim) { // null或者空字符串的时候不处理 if (stream == null || stream.length() == 0 || trim == null || tr
-
总结PHP删除字符串最后一个字符的三种方法
一.前言 从数据库中select()读取一对多的信息时,经常需要将取出的数组用某个特定的字符分割,然后拼接成字符串. 常见的语法格式: foreach ($arr as $key => $value) { $arr_str = $arr['x_id'] . ',' . $arr_str; } 假设字符数组 $arr 中的字符分别为 arr[0] = 'a'; arr[1] = 'b'; arr[2] = 'c'; 则,拼接后的 $arr_str 字符串为 a,b,c, 这个时候,就需要我们对最后
-
JS判断字符串变量是否含有某个字串的实现方法
JS判断字符串变量是否含有某个字串的实现方法 varCts = "bblText"; if(Cts.indexOf("Text") > 0 ){ alert('Cts中包含Text字符串'); } indexOf用法: 返回 String 对象内第一次出现子字符串的字符位置. strObj.indexOf(subString[, startIndex]) 参数 strObj 必选项.String 对象或文字. subString 必选项.要在 String 对
-
Python判断字符串是否为字母或者数字(浮点数)的多种方法
str为字符串s为字符串 str.isalnum() 所有字符都是数字或者字母 str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 str.isspace() 所有字符都是空白字符.t.n.r 检查字符串是数字/浮点数方法 float部分 >> float('Nan') nan >> float('Nan') nan >> float('nan') nan >> float('INF') inf >> fl
-
JS与jQuery判断文本框还剩多少字符可以输入的方法
本文实例讲述了JS与jQuery判断文本框还剩多少字符可以输入的方法.分享给大家供大家参考,具体如下: javascript部分: function $(id) { return document.getElementById(id); } var maxLen=255; function checkMaxInput(){ if($("summary").value.length>maxLen){ $("summary").value=$("summ
-
PHP去除字符串最后一个字符的三种方法实例
前言 本文讲讲PHP中如何正确的去除字符串中的最后一个字符,之前跟大家分享过一篇关于PHP去除字符串最后一个字符的三种方法的文章,但是没给出实例,下面话不多说,直接上代码,相信一眼就能看出来了,直接将下面代码复制粘贴到自己本地服务器下,运行即可. 实例代码 $a = 'http://www.mafutian.net/'; $b = 'http://www.mafutian.net'; // 错误的方式: $len = strlen($a) - 1; $a{$len} = ''; // $a[$l
随机推荐
- Oracle基本PLSQL的使用实例详解
- 视频格式 MPEG4 的软件及制作
- Java基于装饰者模式实现的图片工具类实例【附demo源码下载】
- MyBatis启动时控制台无限输出日志的原因及解决办法
- Eclipse中改变默认的workspace的方法及说明详解
- Visual Studio中js调试的方法图解
- Python单元测试框架unittest简明使用实例
- nodejs入门教程二:创建一个简单应用示例
- 如何使用JSP连接DB2数据库
- 新编MS07004网页木马源码代码
- php-redis中的sort排序函数总结
- 详谈jQuery中的一些正则匹配表达式
- android AudioRecorder简单心得分享
- 动态生成table并实现分页效果心得分享
- Android仿知乎悬浮功能按钮FloatingActionButton效果
- 推荐10款扩展Web表单的JS插件
- Vue动态控制input的disabled属性的方法
- 解决PyCharm import torch包失败的问题
- Python实现重建二叉树的三种方法详解
- 详解express + mock让前后台并行开发