我正在使用java编写MUD(基于文本的游戏).MUD的一个主要方面是格式化字符串并将其发送回用户.如何最好地完成这项工作?
说我想发送以下字符串:
你对别人说"你好!" - "有人","说"和"你好!" 都是变数.哪个表现最好?
"You " + verb + " to " + user + " \"" + text + "\""
要么
String.format("You %1$s to %2$s \"%3$s\"", verb, user, text)
还是其他一些选择?
我不确定最终哪个更容易使用(这很重要,因为它将无处不在),但我现在正在考虑这个问题,因为与+的连接变得有点混乱一些更大的线.我觉得在这种情况下使用StringBuilder只会让它更具可读性.
这里有什么建议吗?
我需要一种方法来逃避lua中mysql语句的数据.我习惯在php中执行类似mysql_real_escape_string()的操作但是在使用mysql时无法找到lua中的等价物(当我使用sqlite3时con:escape()工作).我已经读过准备好的陈述是一个解决方案,但它似乎对我不起作用.我究竟做错了什么?
require "luasql.mysql"
env = assert (luasql.mysql())
con = env:connect("db_name", "user", "pass", "localhost")
local stmt = con:prepare([[
SELECT * FROM `user`
WHERE `login` = :a AND `pass` = :b LIMIT 1
]])
stmt.a = "some_user"
stmt.b = "some_pass"
Run Code Online (Sandbox Code Playgroud)
这种错误与"尝试调用方法'准备'(零值)".
如果我尝试在con上运行一个直接的SELECT*执行它工作正常,所以正在建立连接,但是这个prepare语句不起作用(它甚至不认为准备好作为一个有效的方法,似乎).