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
随机推荐
- JavaScript/jQuery 表单美化插件小结
- Nginx(PHP/fastcgi)的PATH_INFO问题
- Java模拟HTTP Get Post请求 轻松实现校园BBS自动回帖
- CKEditor自定义按钮插入服务端图片
- mstest实现类似单元测试nunit中assert.throws功能
- 减少访问DOM的次数提升javascript性能
- 计算2000年01月01日起到指定日的天数
- jsp超链接中文乱码的解决方法
- UDDI FAQs
- Linux命令中的rpm安装命令
- mysql创建Bitmap_Join_Indexes中的约束与索引
- 更新网站内容的几点经验
- C++入门之基础语法学习教程
- C#实现关闭子窗口而不释放子窗口对象的方法
- SpringCloud Feign 服务调用的实现
- Docker容器的创建、启动、和停止的方法
- 深入浅析vue-cli@3.0 使用及配置说明
- 微信小程序左右滚动公告栏效果代码实例
- python使用pandas处理大数据节省内存技巧(推荐)
- 对angular 实时更新模板视图的方法$apply详解
