正如我在上一个问题(链接)中提到的关于连接变量长度的多部分字符串的问题,我使用了rkhayrov在那里回答的方法,现在,我的函数看起来像这样:
local sToReturn = string.format( "\t%03s\t%-25s\t%-7s\n\t", "S. No.", "UserName", "Score" )
SQLQuery = assert( Conn:execute( string.format( [[SELECT username, totalcount FROM chatstat ORDER BY totalcount DESC LIMIT %d]], iLimit ) ) )
DataArray = SQLQuery:fetch ({}, "a")
i = 1
while DataArray do
sTemp = string.format( "%03s\t%025s\t%-7d", tostring(i), DataArray.username, DataArray.totalcount )
sToReturn = sToReturn..sTemp.."\n\t"
DataArray = SQLQuery:fetch ({}, "a")
i = i + 1
end
Run Code Online (Sandbox Code Playgroud)
但是,即使是现在,价值score仍未按要求遵循订单.用户名的最大长度是25.我%025s在while循环中使用了因为我希望用户名是右对齐的,%-25s而是要使word UserName中心对齐.
当前输出:

要求输出: …