如何处理用户输入的字符串中的撇号?

How to handle apostophes in user inputted String?

所以我正在制作一个程序,将来自 GUI 的用户输入作为参数。用户输入带撇号的单词或句子如何处理?

我用它向数据库输入一些东西,例如:

INSERT INTO users (firstname, lastname) VALUES ('"+firstNameString+"', '"+lastNameString+"')

如果用户的名字类似于 John O'Neill,这将引发错误。 鉴于我无法控制用户可能输入的内容,我该如何处理撇号?

要添加转义序列,您可以在 Oracle 中使用 ',如果要转义 ',则添加 '''

首先'是String的开始 在我们的例子中,第二个 ' 转义了第三个字符 '

为了避免出现这样的问题,请使用 PreparedStatements。通常你的代码看起来像这样:

....
PreparedStatement ps = null;
try {
ps = connection.prepareStatement("INSERT INTO users (firstname, lastname) VALUES (?,?)");
ps.setString(1,firstNameString);
ps.setString(2,lastNameString);
int result = ps.executeUpdate();
...