前言#
我想大家看到今天的的函数名也知道他的作用了吧,你猜的肯定没错,这个函数就是所给字符串中的小写字母转换成大写字母,这和string
家族中的函数string.lower()
是恰恰相反的,接下来我们一起来简单看一下这个函数的用法。
内容#
string.upper()##
- 原型:string.upper(s)
- 解释:接收一个字符串,然后返回一个将字符串中大写字母转化为小写字母的字符串副本,除此之外其他字符都不会被改变,大写字母的定义依赖于当前的本地设置。
Usage##
- 首先我们新建一个文件将文件命名为uppertest.lua然后编写代码如下:
-- 源字符串
local sourcestr = "ADGdfhhjfhjafhdf~fa\000fFAKLDSFklj897890"
print("\nsourcestr is "..sourcestr)
-- 去掉`\0`的影响
local q_sourcestr = string.format("%q", sourcestr)
print("\n\q_sourcestr is "..q_sourcestr)
-- 使用函数转换
local upperstr = string.upper(sourcestr);
print("\n\upperstr is "..upperstr)
-- 将结果去掉`\0`影响
local q_upperstr = string.format("%q", sourcestr)
print("\n\q_upperstr is "..q_upperstr)
- 运行结果
总结#
- 由前两组结果的对比可以看出,普通的字符串如果遇到字符
"\0"
时将会被截断,想要不截断那就需要使用格式符%q
来处理,具体方法参见前几篇文章Lua string.format()。 - 由4组结果对比可以看出,函数
string.upper()
不会在遇到"\0"
时就被截断,而是继续处理直到最后一个字符。 - 在这个函数使用之前可以先和函数
sting.lower()
对比一下,选择最合适的转换方向。