字符串

作者: 爱折腾的傻小子 | 来源:发表于2021-01-06 17:34 被阅读0次

Lua字符串

  • 字符串或串(String)是由数字、字母、下划线组成的一串字符
  • Lua 语言中字符串可以使用以下三种方式来表示
    • 单引号间的一串字符
    • 双引号间的一串字符
    • [[和]]间的一串字符
string11 = "Lua"
print("\"字符串 是\"", string11)    -- "字符串 是"  Lua
string22 = 'hello'
print("字符串是", string22)         -- 字符串是 hello
string33 = [["Lua 学习"]]
print("字符串是", string33)         -- 字符串是 "Lua 学习"
  • 转义字符串
  • 转义字符用于表示不能直接显示的字符,比如后退键,回车键,等。如在字符串转换双引号可以使用 "\""
    转义字符 意义 ASCII码(十进制)
    \a 响铃(BEL) 007
    \b 退格(BS) ,将当前位置移到前一列 008
    \f 换页(FF),将当前位置移到下页开头 012
    \n 换行(LF) ,将当前位置移到下一行开头 010
    \r 回车(CR) ,将当前位置移到本行开头 013
    \t 水平制表(HT) (跳到下一个TAB位置) 009
    \v 垂直制表(VT) 011
    \\ 代表一个反斜线字符''\' 092
    \' 代表一个单引号(撇号)字符 039
    \" 代表一个双引号字符 034
    空字符(NULL) 000
    \ddd 1到3位八进制数所代表的任意字符 三位八进制
    \xhh 1到2位十六进制所代表的任意字符 二位十六进制

字符串操作

  • string.upper(argument)
    • 字符串全部转为大写字母
  • string.lower(argument)
    • 字符串全部转为小写字母
string111 = "lUa"
print(string.upper(string111))      -- LUA
print(string.lower(string111))      -- lua
  • string.gsub(mainString,findString,replaceString,num)
    • 在字符串中替换
    • mainString为要替换的字符串
    • findString 为被替换的字符
    • replaceString 要替换的字符
    • num 替换次数(可以忽略,则全部替换)
print(string.gsub("aaaaa", "a", "z", 4))    -- zzzza    4
  • string.find (str, substr, [init, [end]])
    • 在一个指定的目标字符串中搜索指定的内容
    • 第三个参数为索引,返回其具体位置。不存在则返回 nil
print(string.find("Hello Lua user", "Lua", 1))  -- 7 开始位置   9 结束位置
  • string.reverse(arg)
    • 字符串反转
print(string.reverse("Lua"))    -- auL
  • string.format(...)
    • 返回一个类似printf的格式化字符串
    • lua中字符串拼接“string.format”相对于“..”消耗较大
time = 2020
print(string.format("hello %s %d", "Lua", time))    -- hello Lua 2020

string1 = "Lua"
string2 = "Tutorial"
number1 = 10
number2 = 20
-- 基本字符串格式化
print(string.format("基本格式化 %s %s",string1,string2)) -- 基本格式化 Lua Tutorial
-- 日期格式化
date = 2; month = 1; year = 2014
print(string.format("日期格式化 %02d/%02d/%03d", date, month, year)) -- 日期格式化 02/01/2014
-- 十进制格式化
print(string.format("%.4f",1/3))    -- 0.3333
占位符 描述
%c 接受一个数字, 并将其转化为ASCII码表中对应的字符
%d, %i 接受一个数字并将其转化为有符号的整数格式
%o 接受一个数字并将其转化为八进制数格式
%u 接受一个数字并将其转化为无符号整数格式
%x 接受一个数字并将其转化为十六进制数格式, 使用小写字母
%X 接受一个数字并将其转化为十六进制数格式, 使用大写字母
%e 接受一个数字并将其转化为科学记数法格式, 使用小写字母e
%E 接受一个数字并将其转化为科学记数法格式, 使用大写字母E
%f 接受一个数字并将其转化为浮点数格式
%g(%G) 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式
%q 接受一个字符串并将其转化为可安全被Lua编译器读入的格式
%s 接受一个字符串并按照给定的参数格式化该字符串
print(string.format("%c", 69))          -- E
print(string.format("%d%%", 100))       -- 100%
print(string.format("%05d", 2015))      -- 02015
print(string.format("%+04d", -2015))    -- -2015
print(string.format("%+04d", 2015))     -- +2015
print(string.format("%02d", 1))         ---01
print(string.format("%02d", 11))        ---11
print(string.format("%o", 9))           -- 11
print(string.format("%u", 52))          -- 52
print(string.format("%u", -1))          -- 18446744073709551615
print(string.format("%u", -65))         -- 18446744073709551551
print(string.format("%x", 47))          -- 2f
print(string.format("%X", 47))          -- 2F
print(string.format("%e", 1032000))     -- 1.032000e+006
print(string.format("%E", 1032000))     -- 1.032000E+006
print(string.format("%.5f", math.pi))   -- 3.14159
print(string.format("%.8f", 0.123456789))   -- 0.12345679 (这里可以看到第八位变成了9而不是8,其实是做了一个四舍五入操作)
print(string.format("%g", 4566000))     -- 4.566e+006
print(string.format("%q", "@##@~(*&^%$(a")) -- "@##@~(*&^%$(a"
print(string.format("\"%s\"", "Hello World"))   -- "Hello World"
print(string.format("%.4s", "canglang"))    -- cang
print(string.format("\"%8.4s", "canglang"))   -- "    cang
  • string.char(arg)
    • char 将整型数字转成字符并连接
print(string.char(97,98,99,100))    -- abcd
  • string.byte(arg[,int])
    • byte 转换字符为整数值(可以指定某个字符,默认第一个字符)
print(string.byte("ABCD",4))    -- 68
print(string.byte("ABCD"))          -- 65
  • string.len(arg)
    • 计算字符串长度
print(string.len("abc"))        -- 3
  • string.rep(string, n))
    • 返回字符串string的n个拷贝
print(string.rep("abcd",2))     -- abcdabcd
  • ..
    • 链接两个字符串
print("w"..".c")  -- wc

相关文章

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • C++基础字符串

    字符串的构造 字符串特性描述 字符操作 字符串赋值 字符串连接 字符串比较 字符串查找 字符串替换 字符串删除 字...

  • iOS中的NSString与NSMutableString

    字符串的创建 字符串读写 字符串的比较 字符串的搜索 字符串截取 字符串替换 字符串与路径 字符串转换 NSMut...

  • iOS NSString用法总结

    字符串属性 字符串截取 字符串比较 字符串搜索 字符串拼接 字符串基本类型转换 字符串分行,分段 字符串列举(按条...

  • php 字符串常见方法汇总

    字符串拼接 字符串检索 字符串截取 字符串替换 字符串大小写转化 字符串转数组 字符串格式化

  • iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iO

    iOS之字符串截取、iOS 字符串替换、iOS字符串分隔、iOS之字符串匹配、截取字符串、匹配字符串、分隔字符串 ...

  • PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

    常用字符串函数分类: 字符串长度, 字符串查找, 字符串大小写转换, 字符串截取, 字符串 ASCII, 字符串加...

  • Kotlin语言(二):字符串类型

    1、字符串定义 2、字符串删除空格 3、字符串比较 4、字符串切割 5、字符串截取 6、字符串替换 7、字符串模板

  • 字符串扩展

    求字符串大小 字符串解码、转换 字符串截取 字符串汉字处理 字符串 Mac地址 字符串进制转换

  • 2020-09-30字符串

    day8-字符串 字符串的操作 in 和 not in字符串1 in 字符串2 - 判断字符串1是否是字符串...

网友评论

      本文标题:字符串

      本文链接:https://www.haomeiwen.com/subject/umghoktx.html