2011-02-09 21 views
8

En el código siguiente, el mensaje es una cadena final que tiene un \n dentro y no funciona.Cómo agregar un LineBreak ( n) a un String.format con un String fijo como formato?

message = format = "Blah %d Blah Blah \nBlah Blah %s Blah" 
interventionSize = number 
UserID = String 
String.format(Dic.message,interventionSize,userID) 

¿Cómo puedo hacer el salto de línea en este caso, no puedo encontrar una respuesta.

Por cierto, no puedo usar ningún tipo de marco o jar externo para hacer eso (código antiguo) tengo que usar Java antiguo simple.

+3

lo que significa * * no funciona? ¿Recibes un mensaje de error? ¿Cuál es tu resultado? –

+0

De hecho, tienes razón ... El problema es que la línea no se rompe, solo obtengo una línea enorme en lugar de 2. –

+0

Mi suposición: estás enviando la cadena a HTML. HTML no se preocupa por '\ n', solo se preocupa por'
'. –

Respuesta

28

Tener \n en una cadena de formato está bien.

Quizás deba probar una línea nueva específica para la plataforma. Con cadenas de formato puede usar %n.

Es decir, pruebe lo siguiente:

String.format(Dic.message.replace("\\n", "%n"), interventionSize, userId); 
+0

¡Este funcionó bien! Gracias. te marcará como la mejor respuesta tan pronto como sea posible! –

1

otra posibilidad es utilizar System.lineSeparator(). Esto asegurará la independencia de la plataforma. Si usa un JDK antes de 1.7 es System.getProperty("line.separator");.

Código tendría el siguiente aspecto:

String.format(Dic.message.replace("\\n", System.lineSeparator()), interventionSize, userId); 

o esto (por JDK 1.7 antes):

String.format(Dic.message.replace("\\n", System.getProperty("line.separator")), interventionSize, userId); 
Cuestiones relacionadas