国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 23:04:38
字體:
來源:轉載
供稿:網友

在寫 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

 

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 疏附县| 靖宇县| 灵璧县| 新兴县| 浦江县| 德令哈市| 璧山县| 两当县| 牡丹江市| 天门市| 天柱县| 隆回县| 泊头市| 无极县| 长阳| 略阳县| 洛川县| 大渡口区| 罗源县| 盘锦市| 通化县| 白城市| 琼海市| 稷山县| 青州市| 遂宁市| 焉耆| 鄱阳县| 游戏| 墨脱县| 综艺| 桂平市| 邓州市| 萍乡市| 顺昌县| 罗江县| 宁明县| 化州市| 昭觉县| 康定县| 崇阳县|