MessageFormat no formatea cuando se incluyen comillas simples
Frecuentes
Visto 5,528 veces
16
Estoy pasando texto que es una combinación de {} relleno y texto. Estoy tratando de llenar {} con algunos valores e intenté usar MessageFormat.
String sss = "{0}SomeText{1}\'.{2}SomeText{2}SomeText{0}{0}SomeText{2}{0}SomeText{0}{1}SomeText{0}{2}{0}{0}{1}{0}{2}{0}{0}{2}{0}{0}{1}{0}{2}{0}";
Object[] testArgs = {"nits1", "Nits2","nits#"};
System.out.println(MessageFormat.format(sss,testArgs));
SALIDA
nits1SomeTextNits2.{2}SomeText{2}SomeText{0}{0}SomeText{2}{0}SomeText{0}{1}SomeText{0}{2}{0}{0}{1}{0}{2}{0}{0}{2}{0}{0}{1}{0}{2}{0}
2 Respuestas
41
La comilla simple debe escaparse usando una comilla simple doble:
String sss = "{0}SomeText{1}''.{2}S..."
Respondido el 12 de junio de 12 a las 12:06
1
Mi error fue que no usé el valor devuelto por el método 'formato(..)'
Codigo erroneo:
MessageFormat.format(sss, testArgs);
System.out.println(sss);
Código correcto:
String newString = MessageFormat.format(sss, testArgs);
System.out.println(newString);
Respondido 22 Jul 20, 15:07
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java or haz tu propia pregunta.
Inesperado, pero esto también solucionó mi problema :) Usando
template = template.replace("'", "''");
antes de llamarMessageFormat.format()
esta limpio. - BullyWiiPlaza