Lua 入门简介
Lua 环境安装
Lua 基本语法
Lua 数据类型
Lua 变量
Lua 循环
Lua while 循环
Lua for 循环
Lua repeat…until 循环
Lua 循环嵌套
Lua break 语句
Lua 流程控制
Lua if 语句
Lua if...else 语句
Lua if 嵌套语句
Lua 函数
Lua 运算符
Lua 字符串
Lua 数组
Lua 迭代器
Lua table(表)
Lua 模块与包
Lua 元表(Metatable)
Lua 协同程序(coroutine)
Lua 文件 I/O
Lua 错误处理
Lua 调试(Debug)
Lua 垃圾回收
Lua 面向对象
Lua 数据库访问
Lua 字符串 - Lua 教程 - 光年文档管理系统(Light Year Doc)
网站首页
Lua 字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。 Lua 语言中字符串可以使用以下三种方式来表示: - 单引号间的一串字符。 - 双引号间的一串字符。 - [[和]]间的一串字符。 ## 实例 以上三种方式的字符串实例如下: ```lua string1 = "Lua" print("\"字符串 1 是\"",string1) string2 = 'itshubao.com' print("字符串 2 是",string2) string3 = [["Lua 教程"]] print("字符串 3 是",string3) ``` 以上代码执行输出结果为: ```markup "字符串 1 是" Lua 字符串 2 是 itshubao.com 字符串 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 | | | 空字符(NULL) | 000 | | \ddd | 1到3位八进制数所代表的任意字符 | 三位八进制 | | \xhh | 1到2位十六进制所代表的任意字符 | 二位十六进制 | ## 字符串操作 Lua 提供了很多的方法来支持字符串的操作: <table class="table"><tbody><tr><th style="width:5%">序号</th><th>方法 & 用途</th></tr><tr><td>1</td><td><strong>string.upper(argument):</strong><br /> 字符串全部转为大写字母。</td></tr><tr><td>2</td><td><strong>string.lower(argument):</strong><br /> 字符串全部转为小写字母。</td></tr><tr><td>3</td><td><strong>string.gsub(mainString,findString,replaceString,num)</strong><br /> 在字符串中替换,mainString为要替换的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换),如: <pre>> string.gsub("aaaa","a","z",3); zzza 3</pre></td></tr><tr><td>4</td><td><strong>string.strfind (str, substr, [init, [end]])</strong><br /> 在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置。不存在则返回 nil。 <pre class="line-numbers"><code class="language-lua">> string.find("Hello Lua user", "Lua", 1) 7 9 </code></pre></td></tr><tr><td>5</td><td><strong>string.reverse(arg)</strong><br /> 字符串反转 <pre class="line-numbers"><code class="language-lua">> string.reverse("Lua") auL</code></pre></td></tr><tr><td>6</td><td><strong>string.format(...)</strong><br /> 返回一个类似printf的格式化字符串 <pre class="line-numbers"><code class="language-lua">> string.format("the value is:%d",4) the value is:4 </code></pre></td></tr><tr><td>7</td><td><strong>string.char(arg) 和 string.byte(arg[,int])</strong><br /> char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符)。 <pre class="line-numbers"><code class="language-lua">> string.char(97,98,99,100) abcd > string.byte("ABCD",4) 68 > string.byte("ABCD") 65 > </code></pre></td></tr><tr><td>8</td><td><strong>string.len(arg)</strong><br /> 计算字符串长度。 <pre class="line-numbers"><code class="language-lua">string.len("abc") 3 </code></pre></td></tr><tr><td>9</td><td><strong>string.rep(string, n))</strong><br /> 返回字符串string的n个拷贝 <pre class="line-numbers"><code class="language-lua">> string.rep("abcd",2) abcdabcd </code></pre></td></tr><tr><td>10</td><td><strong>..</strong><br /> 链接两个字符串 <pre class="line-numbers"><code class="language-lua">> print("www.itshubao"..".com") www.itshubao.com </code></pre></td></tr></tbody></table> ### 字符串大小写转换 以下实例演示了如何对字符串大小写进行转换: ```lua string1 = "Lua"; print(string.upper(string1)) print(string.lower(string1)) ``` 以上代码执行结果为: ```markup LUA lua ``` ### 字符串查找与反转 以下实例演示了如何对字符串进行查找与反转操作: ```lua string = "Lua Tutorial" -- 查找字符串 print(string.find(string,"Tutorial")) reversedString = string.reverse(string) print("新字符串为",reversedString) ``` 以上代码执行结果为: ```markup 5 12 新字符串为 lairotuT auL ``` ### 字符串格式化 以下实例演示了如何对字符串进行格式化操作: ```lua 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)) ``` 以上代码执行结果为: ```markup 基本格式化 Lua Tutorial 日期格式化 02/01/2014 0.3333 ``` ### 字符与整数相互转换 以下实例演示了字符与整数相互转换: ```lua -- 字符转换 -- 转换第一个字符 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)) ``` 以上代码执行结果为: ```markup 76 97 97 117 117 a ``` ### 其他常用函数 以下实例演示了其他字符串操作,如计算字符串长度,字符串连接,字符串复制等: ```lua string1 = "www." string2 = "itshubao" string3 = ".ccom" -- 使用 .. 进行字符串连接 print("连接字符串",string1..string2..string3) -- 字符串长度 print("字符串长度 ",string.len(string2)) -- 字符串复制 2 次 repeatedString = string.rep(string2,2) print(repeatedString) ``` 以上代码执行结果为: ```lua 连接字符串 www.itshubao.com 字符串长度 8 itshubaoitshubao ```
上一篇:
Lua 运算符
下一篇:
Lua 数组