In meinem Produktionscode habe ich festgestellt, dass die Methode java.lang.String#format
das erste Zeichen des zu formatierenden Zeichens "isst", wenn es ohne Angabe der Formatierungsparameter verwendet wird.java 1.8: String # format essende Zeichen beim Aufruf ohne Format params
So
String.format("%%myStringValue\r\n");
erzeugt die folgende Ausgabe der Konsole: %myStringValue
See, wie eine der Prozentzeichen entfernt wird? Wieso ist es so? Ich konnte im Docblock der Methode keine Hinweise darauf finden.
Wie in [die Dokumentation] (https: // docs. oracle.com/javase/8/docs/api/java/util/Formatter.html) unter "Conversions" wird '%%' in '%' konvertiert. – khelwood
Es funktioniert so, wie es funktionieren soll. Da '%' ein Sonderzeichen in einer Formatzeichenfolge ist, müssen Sie es mit '%%' entschlüsseln, um ein einzelnes Prozentzeichen in der Ausgabe zu erhalten. – Jesper
Mögliches Duplikat von [Wie kann% in String.Format entfernt werden?] (Https://stackoverflow.com/questions/5011932/how-to-escape-in-string-format) –