Lua 字符串

2022-06-25 15:16 更新

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

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

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

以上三種方式的字符串實例如下:

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)義字符用于表示不能直接顯示的字符,比如后退鍵,回車鍵,等。比如在我們需要使用到雙引號的時候可以使用?\"?來實現(xiàn)。

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

轉(zhuǎn)義字符
意義
ASCII碼值(十進制)
\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位八進制數(shù)所代表的任意字符
三位八進制
\xhh
1到2位十六進制所代表的任意字符
二位十六進制

字符串操作

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ù)值(可以指定某個字符,默認第一個字符)。
> string.char(97,98,99,100)
abcd

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

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

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

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

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

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

LUA
lua

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

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

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

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

5    12
新字符串為   lairotuT auL

字符串格式化

以下實例演示了如何對字符串進行格式化操作:

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))
-- 十進制格式化
print(string.format("%.4f",1/3))

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

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

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

以下實例演示了字符與整數(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ù)

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

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

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

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

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

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


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號