lua学习笔记之字符串

1、概述

字符串是字节序列。lua是不头疼字节如何编码文本的。它的字符串可以包含包含任何数字代码的字节,包括嵌入的零。可以存储任意二进制数据,也可以存储unicode(UTF-8,UTF-16等)字符串。但是推荐使用utf-8。

字符串不可变,不能修改字符串中的字符。

字符串替换使用string.gsub(a, subtext, newtext)

 lua中的字符串自动内存管理 ,正如lua中的对象(table, function)。

字符串长度使用#str,计算字节长度。在一些编码中与字符数不一致 

字符串拼接使用..操作符。

2、字面常量 

 使用单引号对或者双引号对来表示字面常量。单引号对可以使用双引号(双引号对中可以使用单引号),不依赖转义。

支持的转义字符

\abell
\bback space
\fform feed
\nnewline
\rcarriage return
\thorizontal tab
\vvertical tab
\\backslash
\"double quote
\'single quote
\z跳过后面的空格字符,直到遇到非空格字符

3、长字符串

 使用双层方括号来表示长字符串[[ ]]。当第一个字符为换行符是会忽略。

在字符串中包含]]时,作为长字符串的边界,可以使用[==[其中=可以用多个来表示开始,结束使用对应的]==]

4、数字和字符串转换

任意应用在字符串的数学操作符会将字符串转为数字。同时,如果希望是字符串,但是是数字时,会将数字转为字符串。

字符串转数字使用tonumber函数,默认是转换成10进制形式。可以指定2-36进制。

 

数字转字符串使用tostring函数

5、字符串库

函数说明操作符
string.length(s)返回字符串长度,与#s相似
string.rep(s,n)返回s重复n次
string.reverse(s)字符串反转
string.lower(s)返回原字符串的小写表示形式
string.upper(s)返回原字符串的大写表示形式s:upper()
string.sub(s, i, j)返回字符串s的子串s[i..j],字符串索引从1开始s:sub(i,j)
string.char(num1, [nums2...])返回对应的字符
string.byte(s, [i], [j])返回字节码。没有[i]时,返回字符串s的第一个字符的字节码。有[i]时表示返回字符串s的第i个字符的字节码。有[i],[j]时表示获取子串s[i..j]对应的字节码。
string.format格式化字符串
string.find(text, pattern)返回模式串在文本串的初始位置和结束位置
string.gsub全局替换文本

可以使用字符串中来调用库中的函数,通过使用分号操作符。

6、unicode

utf8库是以字节索引为基础。如果需要使用字符索引,需要使用utf8.offset来将字符索引转成字节索引

utf8.len返回utf-8字符的个数
utf8.char与string.char类似
utf8.codepoint与string.byte类似
utf8.offset将字符索引转为字节索引
utf8.codes迭代字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

kgduu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值