2011-02-09 10 views
8

Nel seguente codice, il messaggio è una stringa finale che contiene \n e non funziona.Come aggiungere un LineBreak ( n) a un String.format con stringa fissa come formato?

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

Come posso interrompere la linea in questo caso, non è possibile trovare una risposta.

BTW, non posso usare alcun tipo di framework o jar esterno per farlo (vecchio codice) usare Plain Old Java.

+3

Cosa significa * non funziona *? Hai ricevuto un messaggio di errore? Qual è il tuo output? –

+0

In effetti hai ragione ... Il problema è che la linea non si rompe, ho solo una grande linea invece di 2. –

+0

La mia ipotesi: stai trasmettendo la stringa in HTML. HTML non si preoccupa di '\ n', si preoccupa solo di'
'. –

risposta

28

Avere \n in una stringa di formato va bene.

Forse dovresti provare una nuova linea specifica per la piattaforma. Con le stringhe di formato puoi usare %n.

Cioè, cercare il seguente:

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

Questo ha funzionato bene! Grazie. ti segnerà come migliore risposta non appena possibile! –

1

In alternativa è possibile utilizzare System.lineSeparator(). Ciò garantirà l'indipendenza dalla piattaforma. Se usi un JDK prima di 1.7, il suo System.getProperty("line.separator");.

codice sarebbe quindi simile a questa:

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

o del presente (per JDK prima di 1.7):

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