Ich habe ein Problem mit dem java.text.MessageFormat-Objekt.Java MessageFormat - Wie kann ich Werte zwischen einfachen Anführungszeichen einfügen?
Ich versuche SQL-Insert-Anweisungen zu erstellen. Das Problem ist, wenn ich so etwas tun:
MessageFormat messageFormat = "insert into {0} values ('{1}', '{2}', '{3}', {4})";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);
ich dies von result
für den Wert erhalten:
"insert into <str0> values ({1}, {2}, {3}, <str4>)"
Wie Sie sehen können, ist das Problem, dass eine der Zielorte, die Eingeschlossene Anführungszeichen werden nicht durch Argumente ersetzt. Ich habe versucht, doppelte Anführungszeichen wie folgt zu verwenden: ''{1}''
und Escape-Zeichen wie folgt: \'{1}\'
aber es gibt immer noch das gleiche Ergebnis.
edit: Ich habe vergessen zu erwähnen, dass ich auch versucht '''{1}'''
. Das Ergebnis ist: "insert into <str0> values ('{1}', '{2}', '{3}', <str4>)"
. Es behält die ursprünglichen Anführungszeichen bei, fügt aber immer noch keine Werte ein.
Wie kann ich dieses Problem beheben? Für die Aufzeichnung verwende ich JDK 6u7.
Stellt sich heraus, dass ''' {0} ''' schließlich funktioniert. Ich musste nur mein Build-Verzeichnis vollständig säubern, da mein Build-Prozess nicht korrekt aktualisiert wurde und ich es nicht bemerkt habe. Hoppla! –
[Diese Antwort] (http://stackoverflow.com/questions/17569608/format-a-message-using-messageformat-format-in-java#17569639) erklärt den Grund, warum das zusätzliche Zitat benötigt wird. –