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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top