Caractere & nbsp não exibir corretamente em Java
-
08-07-2019 - |
Pergunta
Eu tentei "
" para exibir dois espaços em uma saída padrão Java cadeia. Tentando System.out.println("__");
<---- (dois espaços, mas, obviamente, ele apara-lo a um espaço, daí o sublinhado)
Eu imagino que há uma maneira de escapar da
, mas eu não consigo entender nem encontrar ajuda online. Procurando por ele é irônico porque um monte de
literal aparecer.
Qualquer ajuda seria apreciada.
EDIT:
for (int j = 0; j < COLUMNS; j++)
if (j < 10){
r += "__";
}
produz 10 espaços, não 20 como esperado quando impresso
desculpe, eu ainda sou novo formatação aqui
Solução
é uma codificação específica de HTML.
Você estava certo pela primeira vez - a string Java que corresponde a dois espaços é simplesmente dois caracteres de espaço, por exemplo
.String s = " ";
A println () que você tentou deve ter funcionado. O que você fez que o levou a acreditar que foi cortado para baixo para um único espaço? Eu acho que o problema está em outro lugar ...
EDIT:
Com base no seu trecho de código - é COLUMNS
5, por acaso? : -)
EDIT novamente:
OK, se colunas é 15, então este código irá resultar em r
ter vinte espaços anexos a ele. Se você quer ser realmente certo você pode passo através de um depurador ou colocar uma declaração de registro acima da linha r +=
para ver ao certo quantas vezes a declaração é chamado.
Também dê uma olhada em como r
é usado mais tarde antes de sua saída é impresso para o lugar que você está inspecionando; talvez o seu valor é truncado em algum momento, seja de forma explícita em Java ou talvez nem sequer implicitamente (como ser armazenado em uma coluna de banco de dados que é 10 caracteres muito estreito antes de ser recuperado e exibido mais tarde).
Outras dicas
Se você quer um espaço sem quebras na cadeia, por qualquer razão, você tem que usar o Unicode literal:
System.out.println("banana\u00A0phone");
Você não precisa usar o & nbsp em Java. System.out.print(" ");
deve fazer o truque. Tente algo como:
System.out.print("This is the a string before spaces" + " " + "this is a string after spaces");
Você também pode criar um espaço sem quebras, segurando a tecla Alt e digitar 0160 no teclado numérico.