游戏开发工具

string类型

上一节:number类型下一节:userdata自定义类型

指字符的序列。lua 是 8 位字节,所以字符串可以包含任何数值字符,包括嵌入的 0。这意味着你可以存储任意的二进制数据在一个字符串里。Lua 中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串,如下:

a = "one string"
b = string.gsub(a, "one", "another")	-- change string parts
print(a)	--> one string
print(b)	--> another string
print(b)	--> another string

string 和其他对象一样,Lua 自动进行内存分配和释放,一个 string 可以只包含一个字母也可以包含一本书,Lua可以高效的处理长字符串,1M 的 string 在 Lua 中是很常见的。可以使用单引号或者双引号表示字符串

a = "a line"
b = 'another line'

为了风格统一,最好使用一种,除非两种引号嵌套情况。对于字符串中含有引号的情况  还可以使用转义符\来表示。Lua 中的转义序列有:

\a 响铃(BEL)
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表tab
\v 垂直指标
\\ 反斜线字符\
\" 双引号字符
\' 单引号字符
\ddd 1到3位八进制数所代表的任意字符
\xhh  1到2位十六进制所代表的任意字符


1、Lua 中字符串的表示

Lua 里的字符串由一对双引号或单引号来表示。

string_1="双引号string"
string_2='单引号string'


2、Lua 和 C# 算术操作的区别

我们先来看下面几行代码

1.png

程序运行后的结果如下图所示

2.png

但是在 Lua 中同样的代码,结果会一样吗?

打印如下

3.png

单纯的数字相加 C# 和 Lua 结果一样。

但在对一个数字字符串上进行算术操作时,C# 是拼接字符串,而 Lua 会尝试将这个数字字符串转成一个数字。

而且,由打印可知,在 Lua 中如果都是数字相加,结果没有保留小数位。如果 Lua 将数字字符串转换为数字后,相加的结果保留到了十分位。


3、Lua 里的字符串拼接

我们知道,C# 中字符串之间的拼接是通过 “+” 号来完成,Lua 里的字符串拼接是通过“两个点” 完成的

4.png


4、Lua 中如何求字符串的长度?

C# 中可以通过 变量名.Length 来获取字符串的长度,而在 Lua 中是使用 # 来计算字符串的长度,放在字符串前面,代码如下:

5.png



上一节:number类型下一节:userdata自定义类型