字符串常用基础:
字符串,可以使用双引号与单引号。
可以用两个括号,来表示“一块”字符串。即:多行字符串
字符串进行连接的时候,lua使用‘..’两个点做连接。(C#的 ‘+’ 可以连接字符串,本质是做了操作符重载,lua没有)
如果字符串应用‘+’号,则字符串会自动转换成number类型处理(但必须保证是“数字字符串”,否则会报错)。
字符串与数值类型,使用..连接,一般没有问题,不会报错。但是数值型如果为nil,则推荐加绒tostring函数。
使用# 符号可以计算字符串的长度。
注意:# 字符号,除了可以取得字符串的长度,还可以取得表的长度。
可以使用tostring() 把数值型转成字符串。
可以使用tonumber() 把字符串转为数值型。
- -- 字符串连接
- str = '123'
- print('输出变量str = '..str) -- '..'表示字符串连接
- -- 字符串的连接(自动转换)
- print('2.2'+'30') -- 输出内容。C# 输出内容:'2.230'
- -- lua 输出内容:32.2
-
- -- 求字符串的长度
- print(#str) -- 输出结果:3
- str2 = '同学们'
- print(#str2) -- 输出结果:6
- -- 自动转换类型
- print('2.2'+10)
- -- 字符串中有两个重要的转换函数(字符串与其他类型的转换)
- -- tonumber() , tostring()
- strNum1 = '888'
- num2 = 666
- res1 = strNum1 - num2
- print(res1)
- res2 = tonumber(strNum1) - num2
- print('做转换 res2='..res2)
- -- 演示一个tostring() 用法
- strName = '同学们'
- res3 = strName..num2 -- 输出:同学们666,lua系统自动转换
- print(res3)
- res4 = strName..tostring(num2)
- print(res4) -- 输出:同学们666,显示转换
- -- 关于字符串与数值型是否可以直接加减?
- str1 = '同学们'
- num1 = 66
- res1=str1+num1 -- 字符串不能与数值直接进行相 加
- print(res1) -- 输出:nil
- -- 必须用到tostring() 的场合
- numArray = {12,15,80} -- 定义的是 “表”
- -- print('表的内容'..numArray) -- 报错,‘表’不能自动转换成字符串,所有连接操作报错
- print('表的内容:'..tostring(numArray))
- -- 必须使用tostring() 场合2
- num =nil -- nil 变量为“空”(相当于C#的null)
- -- print('num='..num) -- nil 类型的变量无法自动转成成字符串,
- print('num='..tostring(nil))
复制代码
|