Lua: 按不同大小写排序字符串数组

我在使用 Lua 的 table.sort 函数时遇到了问题。我写了一个小代码片段,供您测试,如果您想要检验一下。

test = {"apple", "Bee", "clown" }
table.sort( test )

for k, v in pairs( test ) do
    print( k, v )
end

结果是

1   Bee
2   apple
3   clown

虽然我期望的结果应该是这样的

1   apple
2   Bee
3   clown

我已经知道这是因为 table.sort 函数使用了默认的“<”运算符,“B”的 ASCII 值为 66,显然低于“a”或“c”的 ASCII 值,分别为 97 和 99。我知道在调用 table.sort 时可以应用自定义函数,但是我不知道该函数应该是什么样子的。

另外,除非您能够恢复它们,否则将所有字母变成小写或大写都不是选项。

非常感谢您的任何帮助。

点赞
用户9185797
用户9185797

函数 table.sort 接受一个函数作为第二个参数来测试你的值。

例子

table.sort(tTable, function(a, b) return a:upper() < b:upper() end)
2018-01-10 14:11:45