LuaForUnity5:Lua的字符串

 

1、字符串处理:

  • string.upper():转大写
  • string.lower():转小写
  • string.reverse():字符串反转
  • string.len():获取长度
  • string.gsub():字符串替换
  • string.sub():字符串截取
  • string.find():寻找子串

详细使用具体看代码,有注释安全

print("----------------------------------------------------------")
str = "wgnowNIG \\ wfnslkm,M 哈哈"
print(string.upper(str))            --只考虑其中全部的英文字母,将它们转换成大写
print(string.lower(str))            --只考虑其中全部的英文字母,将它们转换成小写
print(string.reverse(str))          --翻转字符串,字符串中有汉字的翻转可能会变成乱码
print(string.len(str))              --求出字符串长度,若是中文字符是UTF-8编码,则一个中文字符长度为3

print("----------------------------------------------------------")
str = "papap ppappapapk"
print(string.gsub(str, "pap", "TTTT"))
           --字符串替换,从左至右扫描字符串,一旦遇到子串"pap",则所有替换为"TTTT",该函数返回两个值,第二个值为替换的个数
print(string.gsub(str, "pap", "TTTT", 2))
           --字符串替换,从左至右扫描字符串,一旦遇到子串"pap",则所有替换为"TTTT",替换最多2个,该函数返回两个值,第二个值为替换的个数
print(string.sub(str, 7, 12))
           --字符串截取,对于字符串str,截取[7, 12]的这一部分,注意①7,12都是下标,下标从1开始;②第三个参数12能够缺省,若是缺省则一直截到末尾
print(string.find(str, "pap", 2))
           --字符串查找,从下标2开始,找到一个"pap"并返回它的起始终止位置(闭区间),找不到返回nil,第三个参数2能够缺省,若是缺省则默认为1

 

2、格式控制符

转义码参考:bash

  • %c - 接受一个数字, 并将其转化为ASCII码表中对应的字符
  • %d, %i - 接受一个数字并将其转化为有符号的整数格式
  • %o - 接受一个数字并将其转化为八进制数格式
  • %u - 接受一个数字并将其转化为无符号整数格式
  • %x - 接受一个数字并将其转化为十六进制数格式, 使用小写字母
  • %X - 接受一个数字并将其转化为十六进制数格式, 使用大写字母
  • %e - 接受一个数字并将其转化为科学记数法格式, 使用小写字母e
  • %E - 接受一个数字并将其转化为科学记数法格式, 使用大写字母E
  • %f - 接受一个数字并将其转化为浮点数格式
  • %g(%G) - 接受一个数字并将其转化为%e(%E, 对应%G)及%f中较短的一种格式
  • %q - 接受一个字符串并将其转化为可安全被Lua编译器读入的格式
  • %s - 接受一个字符串并按照给定的参数格式化该字符串
print("----------------------------------------------------------")
str = "   hello\n   world"             --\n为转义字符之一,关于详细的转义字符须要用的时候能够去查表,大部分和C++语言是相同的
str2 = 'hello world'                   --三种字符串表示方式,其中中括号包裹的字符串会以原格式输出,固然中间也容许你直接换行(想一想多行注释的原理)
str3 = [[   hello
   world]]
print(str)
print(str2)
print(str3)

print("----------------------------------------------------------")
val = 3.1415926
ans = string.format("整数(右对齐4位):%4d\n小数:%0.3f\n字符串:%s\n十六进制数大写:%X", val, val, val, 2019)
print(ans)
--以%开头的格式控制符使用,是否是很像printf("……")?,除了举的四个例子还有更多能够网上查表