0X16字符串处理

前置知识

  • 0X15类型转换

正文

  1. 说明:
    • 如果不特殊说明,后续的str,str1,str2等等表示字符串。
    • 如果string开头的函数不能使用,先执行require('string')。
  2. string.lower(str) 返回一个字符串,是把str中的所有字母都替换成小写字母的结果。
  3. string.upper(str) 返回一个字符串,是把str中的所有字符都替换成大写字母的结果。
  4. string.reverse(str) 返回str反转(头尾颠倒)后的结果。
  5. string.len(str) 返回一个整数,是str的长度。
  6. string.rep(str,n) n是一个整数。返回的字符串是str重复n次的结果。
    • string.rep((str,n,sep) sep是一个字符串。有这个参数时,返回的结果中,每两段重复的str之间会夹一个sep作为分隔符。
    • sep默认为空字符串。
    • 如果n小于等于0,则返回空字符串。
  7. string.sub(str,i,j) i和j是整数。这个函数相当于字符串连接的逆向操作,用于获取字符串str的一个片段(不改变str本身)。
    • 首先说明一下Lua中如何计算字在字符串中的索引。不同于C语言等,在Lua中字符串的第一个字符索引就是1。
    • 索引也可以为负数。-1表示倒数第一个字符,-2表示倒数第二个字符。
    • 这个函数会返回从第i个到第j个字符的字符串。(包括第i个和第j个字符。)
    • 如果只给str和i两个参数。j会取默认值-1。
    • 如果i,j相等返回的字符串只有一个字符。
    • 如果i大于j,则返回空字符串。
    • 如果i和j所指的字符位置超出了字符串长度,会自动把它们定位到最近的字符串边界字符上(索引是1或者-1)。
  8. 视频演示:字符串处理 https://www.bilibili.com/video/av15305032/
  9. 然后说一下字符串字面值的写法。
    • 如果用'作为字符串边界。则字符串内容中不能直接出现单引号本身。(但是可以出现双引号。)
    • 双引号"也可以作为字符串的边界。双引号中间的字符串字面值可以直接出现单引号,但是不能直接出现双引号。 >>str="I'm a student.I'd like to do..." >
    • 单双引号括起来的字符串中都不能直接换行。
  10. Lua还允许方括号的组合用作字符串边界。它们会把所有换行也包括在字符串中。例如: >>str1=[[hello' >this >is my world]] > >str2=[==[This"" is > another >line]==] > 个人不推荐使用这些语法。最好还是使用清晰的专用转义字符\n或\r表示换行。关于转义字符,将在下一部分讨论。

后续推荐

  • 0X1A转义字符