一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Lua - Lua判斷字符串前綴是否為指定字符的3種方法

Lua判斷字符串前綴是否為指定字符的3種方法

2020-04-27 11:13腳本之家 Lua

這篇文章主要介紹了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

延伸 · 閱讀

精彩推薦
  • LuaLua中計算、執行字符串中Lua代碼的方法

    Lua中計算、執行字符串中Lua代碼的方法

    這篇文章主要介紹了Lua中計算、執行字符串中Lua代碼的方法,類似JavaScript中eval函數的功能,在Lua中也可以實現,需要的朋友可以參考下 ...

    腳本之家6322020-04-30
  • LuaLua簡介、編譯安裝教程及變量等語法介紹

    Lua簡介、編譯安裝教程及變量等語法介紹

    這篇文章主要介紹了Lua簡介、編譯安裝教程及變量等語法介紹,本文同時講解了lua注釋語法、Lua命令行方式等內容,需要的朋友可以參考下 ...

    junjie3632020-04-14
  • LuaLua教程(二):基礎知識、類型與值介紹

    Lua教程(二):基礎知識、類型與值介紹

    這篇文章主要介紹了Lua教程(二):基礎知識、類型與值介紹,本文講解了Hello World程序、代碼規范、全局變量、類型與值等內容,需要的朋友可以參考下 ...

    腳本之家5922020-04-28
  • Lua深入探究Lua中的解析表達式

    深入探究Lua中的解析表達式

    這篇文章主要介紹了深入探究Lua中的解析表達式,對于其語法部分的說明和示例都超詳細,極力推薦此文!需要的朋友可以參考下 ...

    腳本之家3542020-05-05
  • LuaLua實現__add方法重載示例

    Lua實現__add方法重載示例

    這篇文章主要介紹了Lua實現__add方法重載示例,本文直接給出實現代碼,需要的朋友可以參考下 ...

    腳本之家7452020-04-24
  • LuaLua中的元方法__newindex詳解

    Lua中的元方法__newindex詳解

    這篇文章主要介紹了Lua中的元方法__newindex詳解,本文講解了查詢與更新、監控賦值、通過table給另一個table賦值等內容,需要的朋友可以參考下 ...

    笨木頭8872020-04-09
  • LuaLua和C語言的交互詳解

    Lua和C語言的交互詳解

    這篇文章主要介紹了Lua和C語言的交互詳解,Lua和C語言通過棧完成交互,本文結合代碼實例詳細講解了交互的方法,需要的朋友可以參考下 ...

    果凍想3702020-04-14
  • LuaLua中table庫函數方法介紹

    Lua中table庫函數方法介紹

    這篇文章主要介紹了Lua中table庫函數方法介紹,本文講解了concat、insert、maxn、remove、sort、foreachi等方法,需要的朋友可以參考下 ...

    腳本之家2502020-04-17
主站蜘蛛池模板: 国产亚洲欧美一区二区三区 | 国产品精人成福利视频 | 国产亚洲精品精品国产亚洲综合 | 日本性生活免费看 | 91大神精品| 男女全黄h全肉细节文 | 国产99精品| 狠狠撸在线影院 | 全彩孕交漫画福利啪啪吧 | 九九热在线视频 | 午夜福利院电影 | 精品午夜寂寞影院在线观看 | 欧美性色老妇人 | 免费jizz在在线播放国产 | 大胸被c出奶水嗷嗷叫 | 五月婷婷丁香色 | 欧美区视频 | 国产一级大片免费看 | 91短视频在线播放 | 波多野结衣在线观看视频 | 99久久er这里只有精品17 | bl文全肉高h湿被灌尿 | 超爽人人做人人爽 | 久久这里有精品 | 欧美一区二区三区免费不卡 | 精品综合久久久久久88小说 | 天天狠天天透 | 欧美一级片在线视频 | 日本黄色高清视频网站 | 日本午夜vr影院新入口 | 91国内在线国内在线播放 | 欧美日韩在线观看一区二区 | 天天做天天爱天天综合网 | 国产在线成人a | 欧美专区在线观看 | 欧美一级片在线看 | 无套插入 | 动漫美女日批 | 被黑人日| 天码毛片一区二区三区入口 | 欧美一级激情 |