Lua string.byte()

ASCII.png

前言#

從今天開(kāi)始我們要進(jìn)軍字符串操作的庫(kù)函數(shù)了,這些函數(shù)都放在全局表string中,說(shuō)起字符串操作熟悉c語(yǔ)言的程序猿都不會(huì)陌生,比如strcpy,strcmp,strlen等等,這些函數(shù)串處理的經(jīng)典函數(shù)。

lua中這個(gè)字符串處理庫(kù)也是提供對(duì)字符串處理的基本函數(shù),比如查找、提取子串、,模式匹配等等,在Lua中字符串的第一個(gè)字母索引為1,這一點(diǎn)不同于c語(yǔ)言中第一個(gè)字母索引為0的約定,并且在lua中引用字符串的索引可以為負(fù)數(shù),表示從字符串的末尾向前查找,比如字符串最后一個(gè)字母的索引可以表示為-1。

字符串處理庫(kù)的所有函數(shù)都被放置在表string中,并且還為操作的字符串設(shè)置了元表,使得這些字符串有了一個(gè)指向表string__idnex字段,因此你可以用面向?qū)ο蟮姆绞絹?lái)調(diào)用這些函數(shù),比如函數(shù)string,.byte(s, i)可以寫成`s:byte(i)。

內(nèi)容#


string.byte()##

  • 原型:string.byte (s [, i [, j] ])
  • 解釋:函數(shù)返回字符s[i], s[i+1], ···, s[j]的內(nèi)部數(shù)字編碼(ASCII碼),其中參數(shù)i的默認(rèn)值是1,而參數(shù)j的默認(rèn)值是i。需要注意的是該函數(shù)在返回的數(shù)字編碼在跨平臺(tái)方面不一定是可移植的。

Usage##

  • 首先新建一個(gè)文件將文件命名為bytetest.lua然后編寫如下代碼:
-- 首先定義一個(gè)字符串
local str = "012abcd"
print("str = "..str)

-- 使用常規(guī)方式
print("\nafter string.byte(str,1,4)")
print(string.byte(str,1,4))

-- 使用另一種表現(xiàn)方式
print("\nafter str:byte(1,4)")
print(str:byte(1,4))

-- 使用負(fù)數(shù)索引
print("\nafter str:byte(-2,-1)")
print(str:byte(-2,-1))

-- 當(dāng)參數(shù)i大于j時(shí)
print("\nafter str:byte(2,1)")
print(str:byte(2, 1))

-- 當(dāng)索引無(wú)效時(shí)
print("\nafter str:byte(2000,1000000)")
print(str:byte(2000,1000000))
  • 運(yùn)行結(jié)果
string_byte.png

總結(jié)#

  • 首先需要注意的是這個(gè)字符串字處理庫(kù)假想字符串都是單字節(jié)編碼的。
  • 在代碼的示例中我們測(cè)試了這個(gè)函數(shù)的兩種寫法結(jié)果都是一樣的。
  • 通過(guò)結(jié)果可知使用負(fù)數(shù)來(lái)作為字符串中字符的索引也是沒(méi)有問(wèn)題的。
  • 我們發(fā)現(xiàn)代碼str:byte(2, 1)是沒(méi)有結(jié)果的,原因是這個(gè)函數(shù)不能從后往前依次顯示字符的ASCII碼,不管是證書索引還是負(fù)數(shù)索引,需要滿足參數(shù)i要小于等于參數(shù)j的值。
  • 從最后一組測(cè)試可以看出當(dāng)引用的索引在原字符串中不存在時(shí),函數(shù)也是沒(méi)有返回結(jié)果的。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,834評(píng)論 18 399
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 7,383評(píng)論 0 17
  • string庫(kù)提供了字符串處理的通用函數(shù)。 例如字符串查找、子串、模式匹配等。 當(dāng)在 Lua 中對(duì)字符串做索引時(shí),...
    chiguozi閱讀 4,226評(píng)論 0 3
  • 第5章 引用類型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,691評(píng)論 0 4
  • 從大學(xué)在合肥,實(shí)習(xí)在杭州,工作在深圳,一路向南,也閱美景無(wú)數(shù),看起來(lái)越來(lái)越好,生活節(jié)奏越來(lái)越快,也感到壓力越...
    JK小飛俠閱讀 233評(píng)論 0 0

友情鏈接更多精彩內(nèi)容