Il carattere & amp; nbsp non viene visualizzato correttamente in Java
-
08-07-2019 - |
Domanda
Ho provato " & amp; nbsp; & amp; nbsp;
" per visualizzare due spazi in una stringa Java di output standard. Prova System.out.println (" __ ");
< ---- (due spazi, ma, ovviamente, lo ritaglia in uno spazio, quindi il trattino basso)
Immagino che ci sia un modo per sfuggire al & amp; nbsp;
, ma non riesco a capirlo né a trovare aiuto online. La ricerca è ironica perché si presentano molti & amp; nbsp; & amp; nbsp;
letterali.
Qualsiasi aiuto sarebbe apprezzato.
EDIT:
for (int j = 0; j < COLUMNS; j++)
if (j < 10){
r += "__";
}
produce 10 spazi, non 20 come previsto quando stampato
scusate, sono ancora nuovo nella formattazione qui
Soluzione
& amp; nbsp;
è una codifica specifica per HTML.
Avevi ragione la prima volta: la stringa Java che corrisponde a due spazi è semplicemente due caratteri spaziali, ad esempio
String s = " ";
La chiamata println () che hai provato a dovrebbe avere funzionato. Cosa hai fatto che ti ha portato a credere che fosse ridotto in un unico spazio? Penso che il tuo problema sia altrove ...
EDIT:
Basato sul tuo frammento di codice - COLUMNS
5, per caso? : -)
MODIFICA DI NUOVO:
OK, se COLONNE è 15, questo codice comporterà che r
avrà venti spazi aggiunti. Se vuoi essere davvero sicuro di poter passare in un debugger o inserire un'istruzione di registrazione sopra la riga r + =
per vedere con certezza quante volte viene chiamata l'istruzione.
Dai un'occhiata anche a come r
viene usato in seguito prima che il suo output venga stampato nel punto che stai ispezionando; forse il suo valore viene troncato ad un certo punto, o esplicitamente in Java o forse anche implicitamente (come essere archiviato in una colonna del database che è troppo stretta di 10 caratteri prima di essere recuperata e visualizzata in seguito).
Altri suggerimenti
Se si desidera uno spazio non interrotto nella stringa, per qualsiasi motivo, è necessario utilizzare il valore letterale Unicode:
System.out.println("banana\u00A0phone");
Non è necessario utilizzare & amp; nbsp in Java. System.out.print (" ");
dovrebbe fare il trucco. Prova qualcosa del tipo:
System.out.print("This is the a string before spaces" + " " + "this is a string after spaces");
Puoi anche creare uno spazio senza interruzioni tenendo premuto il tasto Alt e digitando 0160 sul tastierino numerico.