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
随机推荐
- window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
- java 求解二维数组列最小值
- oracle报错(ORA-00600)问题处理
- 基于Xshell使用密钥方式连接远程主机
- 基于JSP HttpServlet的详细介绍
- Java抽奖算法第二例
- Android UI系列-----Dialog对话框示例
- js生成随机颜色方法代码分享(三种)
- javascript题目,重写函数让其无限相加
- jQuery Ajax前后端使用JSON进行交互示例
- Windows下安装PHP单元测试环境PHPUnit图文教程
- mysql索引失效的五种情况分析
- JS实现pasteHTML兼容ie,firefox,chrome的方法
- jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
- 深入解析Javascript闭包的功能及实现方法
- IE与FF下javascript获取网页及窗口大小的区别详解
- 特殊的IP地址分析
- Android运用BroadcastReceiver实现强制下线
- Android开发之手势检测及通过手势实现翻页功能的方法
- java观感示例分享