Tengo un problema al utilizar el objeto java.text.MessageFormat.Java MessageFormat - ¿Cómo puedo insertar valores entre comillas simples?
Estoy tratando de crear instrucciones de inserción de SQL. El problema es que cuando hago algo como esto:
MessageFormat messageFormat = "insert into {0} values ('{1}', '{2}', '{3}', {4})";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);
consigo esto por el valor de result
:
"insert into <str0> values ({1}, {2}, {3}, <str4>)"
Como se puede ver, el problema es que ninguno de los lugares de destino que estén encerrados entre comillas simples no son reemplazados por argumentos. He intentado utilizar comillas simples dobles como esta: ''{1}''
y caracteres escapados como este: \'{1}\'
pero todavía da el mismo resultado.
editar: Olvidé mencionar que también probé '''{1}'''
. El resultado es: "insert into <str0> values ('{1}', '{2}', '{3}', <str4>)"
. Mantiene las comillas originales pero aún no inserta los valores.
¿Cómo puedo resolver este problema? Para el registro, estoy usando JDK 6u7.
Resulta que ''' {0} ''' funciona después de todo. Solo necesitaba hacer una limpieza completa de mi directorio de compilación, ya que mi proceso de compilación no se actualizaba correctamente y no me di cuenta. Oops! –
[Esta respuesta] (http://stackoverflow.com/questions/17569608/format-a-message-using-messageformat-format-in-java#17569639) explica el motivo por el que se necesita una cotización adicional. –