[Lua语言基础]-3、字符串常用基础

[复制链接]
查看1311 | 回复0 | 2021-8-17 21:35:08 | 显示全部楼层 |阅读模式
字符串常用基础:
字符串,可以使用双引号与单引号。
可以用两个括号,来表示“一块”字符串。即:多行字符串
字符串进行连接的时候,lua使用‘..’两个点做连接。(C#的 ‘+’ 可以连接字符串,本质是做了操作符重载,lua没有)
如果字符串应用‘+’号,则字符串会自动转换成number类型处理(但必须保证是“数字字符串”,否则会报错)。
字符串与数值类型,使用..连接,一般没有问题,不会报错。但是数值型如果为nil,则推荐加绒tostring函数。
使用# 符号可以计算字符串的长度。
    注意:# 字符号,除了可以取得字符串的长度,还可以取得表的长度。
可以使用tostring() 把数值型转成字符串。
可以使用tonumber() 把字符串转为数值型。

  1. -- 字符串连接
  2. str = '123'
  3. print('输出变量str = '..str)  -- '..'表示字符串连接

  4. -- 字符串的连接(自动转换)
  5. print('2.2'+'30')  -- 输出内容。C# 输出内容:'2.230'
  6.                                         -- lua 输出内容:32.2
  7.                                        
  8. -- 求字符串的长度
  9. print(#str)                -- 输出结果:3

  10. str2 = '同学们'
  11. print(#str2)                -- 输出结果:6

  12. -- 自动转换类型
  13. print('2.2'+10)

  14. -- 字符串中有两个重要的转换函数(字符串与其他类型的转换)
  15. -- tonumber() , tostring()
  16. strNum1 = '888'
  17. num2 = 666
  18. res1 = strNum1 - num2
  19. print(res1)

  20. res2 = tonumber(strNum1) - num2
  21. print('做转换 res2='..res2)

  22. -- 演示一个tostring() 用法
  23. strName = '同学们'
  24. res3 = strName..num2        -- 输出:同学们666,lua系统自动转换
  25. print(res3)

  26. res4 = strName..tostring(num2)
  27. print(res4)                -- 输出:同学们666,显示转换


  28.                                                                                         -- 关于字符串与数值型是否可以直接加减?
  29. str1 = '同学们'
  30. num1 = 66

  31.                                                                                         res1=str1+num1        -- 字符串不能与数值直接进行相 加
  32. print(res1)                                                                        -- 输出:nil


  33. -- 必须用到tostring() 的场合
  34. numArray = {12,15,80}        -- 定义的是 “表”
  35. -- print('表的内容'..numArray)                                 -- 报错,‘表’不能自动转换成字符串,所有连接操作报错
  36. print('表的内容:'..tostring(numArray))

  37. -- 必须使用tostring() 场合2
  38. num =nil                                                                        -- nil 变量为“空”(相当于C#的null)

  39. -- print('num='..num)                                                -- nil 类型的变量无法自动转成成字符串,
  40. print('num='..tostring(nil))

复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则