Lua 字符串

2022-06-25 15:16 更新

字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。

Lua 語言中字符串可以使用以下三種方式來表示:

  • 單引號間的一串字符。
  • 雙引號間的一串字符。
  • [[和]]間的一串字符。

以上三種方式的字符串實(shí)例如下:

string1 = "Lua"
print("\"字符串 1 是\"",string1)
string2 = 'w3cschool.cn'
print("字符串 2 是",string2)

string3 = [["Lua 教程"]] print("字符串 3 是",string3)

以上代碼執(zhí)行輸出結(jié)果為:

"字符串 1 是" Lua
字符串 2 是    w3cschool.cn
字符串 3 是   "Lua 教程"

轉(zhuǎn)義字符用于表示不能直接顯示的字符,比如后退鍵,回車鍵,等。比如在我們需要使用到雙引號的時候可以使用?\"?來實(shí)現(xiàn)。

所有的轉(zhuǎn)義字符和所對應(yīng)的意義:

轉(zhuǎn)義字符
意義
ASCII碼值(十進(jìn)制)
\a
響鈴(BEL)
007
\b
退格(BS) ,將當(dāng)前位置移到前一列
008
\f
換頁(FF),將當(dāng)前位置移到下頁開頭
012
\n
換行(LF) ,將當(dāng)前位置移到下一行開頭
010
\r
回車(CR) ,將當(dāng)前位置移到本行開頭
013
\t
水平制表(HT) (跳到下一個TAB位置)
009
\v
垂直制表(VT)
011
\\
代表一個反斜線字符''\'
092
\'
代表一個單引號(撇號)字符
039
\"
代表一個雙引號字符
034
空字符(NULL)
000
\ddd
1到3位八進(jìn)制數(shù)所代表的任意字符
三位八進(jìn)制
\xhh
1到2位十六進(jìn)制所代表的任意字符
二位十六進(jìn)制

字符串操作

Lua 提供了很多的方法來支持字符串的操作:

序號方法 & 用途
1string.upper(argument):
字符串全部轉(zhuǎn)為大寫字母。
2string.lower(argument):
字符串全部轉(zhuǎn)為小寫字母。
3string.gsub(mainString,findString,replaceString,num)
在字符串中替換,mainString為要替換的字符串, findString 為被替換的字符,replaceString 要替換的字符,num 替換次數(shù)(可以忽略,則全部替換),如:
> string.gsub("aaaa","a","z",3);
zzza 3
4string.find (str, substr, [init, [end]])
在一個指定的目標(biāo)字符串中搜索指定的內(nèi)容(第三個參數(shù)為索引),返回其具體位置。不存在則返回 nil。
> string.find("Hello Lua user", "Lua", 1) 
7 9
5string.reverse(arg)
字符串反轉(zhuǎn)
> string.reverse("Lua")
auL
6string.format(...)
返回一個類似printf的格式化字符串
> string.format("the value is:%d",4)
the value is:4
7string.char(arg) 和 string.byte(arg[,int])
char 將整型數(shù)字轉(zhuǎn)成字符并連接, byte 轉(zhuǎn)換字符為整數(shù)值(可以指定某個字符,默認(rèn)第一個字符)。
> string.char(97,98,99,100)
abcd

string.byte("ABCD",4) 68 string.byte("ABCD") 65

8string.len(arg)
計(jì)算字符串長度。
string.len("abc")
3
9string.rep(string, n))
返回字符串string的n個拷貝
> string.rep("abcd",2)
abcdabcd
10..
鏈接兩個字符串
> print("www.w3cschool"..".cn")
m.o2fo.com

字符串大小寫轉(zhuǎn)換

以下實(shí)例演示了如何對字符串大小寫進(jìn)行轉(zhuǎn)換:

string1 = "Lua";
print(string.upper(string1))
print(string.lower(string1))

以上代碼執(zhí)行結(jié)果為:

LUA
lua

字符串查找與反轉(zhuǎn)

以下實(shí)例演示了如何對字符串進(jìn)行查找與反轉(zhuǎn)操作:

string = "Lua Tutorial"
-- 查找字符串
print(string.find(string,"Tutorial"))
reversedString = string.reverse(string)
print("新字符串為",reversedString)

以上代碼執(zhí)行結(jié)果為:

5    12
新字符串為   lairotuT auL

字符串格式化

以下實(shí)例演示了如何對字符串進(jìn)行格式化操作:

string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- 基本字符串格式化
print(string.format("基本格式化 %s %s",string1,string2))
-- 日期格式化
date = 2; month = 1; year = 2014
print(string.format("日期格式化 %02d/%02d/%03d", date, month, year))
-- 十進(jìn)制格式化
print(string.format("%.4f",1/3))

以上代碼執(zhí)行結(jié)果為:

基本格式化 Lua Tutorial
日期格式化 02/01/2014
0.3333

字符與整數(shù)相互轉(zhuǎn)換

以下實(shí)例演示了字符與整數(shù)相互轉(zhuǎn)換:

-- 字符轉(zhuǎn)換
-- 轉(zhuǎn)換第一個字符
print(string.byte("Lua"))
-- 轉(zhuǎn)換第三個字符
print(string.byte("Lua",3))
-- 轉(zhuǎn)換末尾第一個字符
print(string.byte("Lua",-1))
-- 第二個字符
print(string.byte("Lua",2))
-- 轉(zhuǎn)換末尾第二個字符
print(string.byte("Lua",-2))

-- 整數(shù) ASCII 碼轉(zhuǎn)換為字符 print(string.char(97))

以上代碼執(zhí)行結(jié)果為:

76
97
97
117
117
a

其他常用函數(shù)

以下實(shí)例演示了其他字符串操作,如計(jì)算字符串長度,字符串連接,字符串復(fù)制等:

string1 = "www."
string2 = "w3cschool"
string3 = ".cn"
-- 使用 .. 進(jìn)行字符串連接
print("連接字符串",string1..string2..string3)

-- 字符串長度 print("字符串長度 ",string.len(string2))

-- 字符串復(fù)制 2 次 repeatedString = string.rep(string2,2) print(repeatedString)

以上代碼執(zhí)行結(jié)果為:

連接字符串     m.o2fo.com
字符串長度     9
w3cschoolw3cschool


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號