cocos2d-x -Lua 字符串


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

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

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

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

string1 = "Lua" print("\"字符串 1 是\"",string1) string2 = 'w3cschool.cc' print("字符串 2 是",string2) string3 = [["Lua 教程"]] print("字符串 3 是",string3)

以上代碼執行輸出結果為:

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

轉義字符用於表示不能直接顯示的字符,比如后退鍵,回車鍵,等。如在字符串轉換雙引號可以使用 "\""。

所有的轉義字符和所對應的意義:

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

字符串操作

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

序號 方法 & 用途
1 string.upper(argument):
字符串全部轉為大寫字母。
2 string.lower(argument):
字符串全部轉為小寫字母。
3 string.gsub(mainString,findString,replaceString,num)
在字符串中替換,mainString為要替換的字符串, findString 為被替換的字符,replaceString 要替換的字符,num 替換次數(可以忽略,則全部替換),如:
> string.gsub("aaaa","a","z",3); zzza 3
4 string.strfind (str, substr, [init, [end]])
在一個指定的目標字符串中搜索指定的內容(第三個參數為索引),返回其具體位置。不存在則返回 nil。
> string.find("Hello Lua user", "Lua", 1) 7 9
5 string.reverse(arg)
字符串反轉
> string.reverse("Lua") auL
6 string.format(...)
返回一個類似printf的格式化字符串
> string.format("the value is:%d",4) the value is:4
7 string.char(arg) 和 string.byte(arg[,int])
char 將整型數字轉成字符並連接, byte 轉換字符為整數值(可以指定某個字符,默認第一個字符)。
> string.char(97,98,99,100) abcd > string.byte("ABCD",4) 68 > string.byte("ABCD") 65 >
8 string.len(arg)
計算字符串長度。
string.len("abc") 3
9 string.rep(string, n))
返回字符串string的n個拷貝
> string.rep("abcd",2) abcdabcd
10 ..
鏈接兩個字符串
> print("www.w3cschool".."cc") www.w3cschoolcc

字符串大小寫轉換

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

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

以上代碼執行結果為:

LUA
lua

字符串查找與反轉

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

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

以上代碼執行結果為:

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))

以上代碼執行結果為:

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

字符與整數相互轉換

以下實例演示了字符與整數相互轉換:

-- 字符轉換 -- 轉換第一個字符 print(string.byte("Lua")) -- 轉換第三個字符 print(string.byte("Lua",3)) -- 轉換末尾第一個字符 print(string.byte("Lua",-1)) -- 第二個字符 print(string.byte("Lua",2)) -- 轉換末尾第二個字符 print(string.byte("Lua",-2)) -- 整數 ASCII 碼轉換為字符 print(string.char(97))

以上代碼執行結果為:

76 97 97 117 117 a

其他常用函數

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

string1 = "www." string2 = "w3cschool" string3 = ".cc" -- 使用 .. 進行字符串連接 print("連接字符串",string1..string2..string3) -- 字符串長度 print("字符串長度 ",string.len(string2)) -- 字符串復制 2  repeatedString = string.rep(string2,2) print(repeatedString)

以上代碼執行結果為:

連接字符串 www.w3cschool.cc 字符串長度 9 w3cschoolw3cschool


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM