【Lua基础系列】之类型与值(字符串String)详细版

         【Lua基础系列】之类型与值 (字符串String)

   

       大家好,我是Lampard~~

       欢迎来到Lua基础系列的博客

       PS:本博客知识参考资料为:《Lua程序设计第四版》,该书由Lua的创始人2018年所编著,所以大家可以放心去吸收知识

 

      前文再续,书接上一回。

      今天要接着讲Lua中的基本类型字符串。

 

    (一) 字符串String类型

      Lua中的字符串是不可变值(immutable value)。我们不可以像在C语言中那样直接改变某个字符串中的某个字符。但是我们可以创建另外一个新字符串的方式来达到修改的目的。

    1

     可以使用长度操作符(#)来获取字符串的长度。

 2

     我们也可以用连接操作符(..) 来拼接两个字符串。但是由于Lua的字符串是不可变的,所以得到的是一个新的字符串

 3

    (1)字符串常量   

      我们可以使用双引号或者单引号来声明字符串常量。

a = "a line"
b = ‘another line’

      使用双引号声明的字符串中出现单引号时,不需要转义。

      同理,使用单引号声明的字符串出现双引号时,不需要转义。

4

      (2) 长字符串/多行字符串

       为了方便缩进排版,所以Lua定义了用户可以使用一对方括号 [[]] 来声明长字符串。被方括号扩起来的内容可以由很多行,并且内容中的转义序列不会被转义

   5

        同时,为了避免出现像这种情况

array[b[10]]   -- 出现了两个]]

         我们还可以在声明长字符串时在两个中括号之间加入等量的=号,如:

array[==[ 
      123456    -- 这样lua也会自动识别它是一个长的字符串
     ]==]

    (3)类型强制转换

       当Lua语言发现在需要字符串的地方出现数字时,它会自动把数值转换为字符串。

   6

   但是假如我们需要 1 .. 2 想输出“12”的化话,那么数字和..连接符之间需要带空格,避免系统把它当成小数点

 

   当在算数运算中发现字符串时,它会转化为浮点型数值再进行计算,要注意在比较操作中不会默认转化。

7

       当然我们也可以显式的把字符串和数值相互转换:tostring()-- 返回字符串/ tonumber () --返回整形或浮点型数值。

8

     (4)字符串标准库

        Lua本身对字符串的处理十分有限,仅能够创建,拼接,取长度和比较字符串

       所以Lua处理字符串的完整能力来自字符串的标准库

    9

   诶!怎么没有得到想要的结果呢?原来是忘记了Lua中字符串是不可变的这定义。所以我们要看到改变后的后果,可以用一个新的字符串接住它。

10

还有一些如:

string.gsub(stringName,"字符串一","字符串二")--把字符串一改成字符串二

string.sub(stringName,起始位置,终止位置) -- 返回从起始位置到终止位置的字符串

string.char(num) -- 把数字通过ascall译码转化为字符

string.byte(字符) -- 把字符通过ascall译码转化为数字

都是很有用的字符串函数

 

 最后要给大家介绍介绍string.format(),它适用于进行字符串格式化和将数值输出为字符串的强大工具。

 有点类似C中的printf()。

11

 

 

       好啦,今天的Lua介绍就到这里,谢谢大家!!!

   

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lampard杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值