当前位置: 首页 > 面试题库 >

Java MessageFormat-如何在单引号之间插入值?

徐杰
2023-03-14
问题内容

我在使用java.text.MessageFormat对象时遇到问题。

我正在尝试创建SQL插入语句。问题是,当我做这样的事情时:

MessageFormat messageFormat = "insert into {0} values ( '{1}', '{2}', '{3}', {4} )";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);

我得到这个的价值result

"insert into <str0> values ( {1}, {2}, {3}, <str4> )"

如您所见,问题在于用单引号引起来的任何目标位置都不会被参数替换。我已经尝试过使用像这样的双单引号和这样的''{1}''转义字符:\'{1}\'但它仍然给出相同的结果。

编辑:我忘了提到我也尝试过'''{1}'''。结果是:"insert into <str0> values ( '{1}', '{2}', '{3}', <str4> )"。它保留了原始引号,但仍未插入值。

我该如何解决这个问题?作为记录,我使用的是JDK 6u7。


问题答案:

我只是尝试了双引号,对我来说效果很好:

MessageFormat messageFormat = new MessageFormat("insert into {0} values ( ''{1}'', ''{2}'', ''{3}'', {4} )");
Object[] args = {"000", "111", "222","333","444","555"};
String result = messageFormat.format(args);

结果是:

insert into 000 values ( '111', '222', '333', 444 )

这是您需要的吗?



 类似资料:
  • 问题内容: 我正在通过PHP文本框获取数据,并使用普通的insert命令将其插入MySQL数据库。文本框在文本框旁为用户提供了有关特定登录ID的注释。问题在于,当用户输入撇号(’)例如句子“我们必须照顾好PC”时,会引发错误。 我知道为什么会这样,因为SQL会将其假定为该值的字符串结尾,但是我不知道如何对其进行转义。我希望在MYSQL中转义它。 如果我在MySQL中转义它,即使没有错误生成并且插入

  • 如何插入双引号 2.创建要插入该表的存储过程。 3.使用此查询插入的数据: 它的作品!!! 4.以下组合全部失败。当双引号变成单引号时,反之亦然 如何使用存储过程插入上述数据??

  • 对于PHP中的自定义脚本解析器,我想替换包含双引号和单引号的多行字符串中的一些单词。但是,只能替换引号之外的文本。 例如,我想把“苹果”换成“梨”,但只在引用句子之外。所以在这种情况下,只有“许多苹果从树上掉下来”里面的“苹果”才是目标。 以上将给出以下输出: 我怎样才能做到这一点?

  • 问题内容: 我知道在PHP中,双引号和单引号之间的唯一区别是字符串中变量的解释和转义符的处理。 在JavaScript中,我经常看到字符串中使用双引号。是否有特定原因,还是单引号与双引号完全相同? 问题答案: 您将希望使用单引号,而您希望双引号出现在字符串内(例如html属性),而不必对其进行转义,反之亦然。除此之外,没有任何区别。 但是,请注意,JSON(JavaScript对象表示法)仅支持双

  • 我有这样一个价值观: 什么正则表达式将返回包含在引号中的值(例如和)?

  • 问题内容: 这是适合此描述的命令行示例: 我已经尝试过'(不转义),URL编码(在另一端没有urldecoded!)和”(引号消失!),但没有成功。 问题答案: 如果您将“替换为Unicode编码的”(\ u0027),则可以使用: 奇怪,但是值得知道!