El carácter & amp; nbsp no se muestra correctamente en Java
-
08-07-2019 - |
Pregunta
He intentado " & amp; nbsp; & amp; nbsp;
" para mostrar dos espacios en una Cadena Java de salida estándar. Intentando System.out.println (" __ ");
< ---- (dos espacios, pero, obviamente, lo reduce a un espacio, de ahí el guión bajo)
Me imagino que hay una manera de escapar del & amp; nbsp;
, pero no puedo resolverlo ni encontrar ayuda en línea. Buscarlo es irónico porque aparecen muchos & amp; nbsp; & amp; nbsp;
literales.
Cualquier ayuda sería apreciada.
EDITAR:
for (int j = 0; j < COLUMNS; j++)
if (j < 10){
r += "__";
}
produce 10 espacios, no 20 como se esperaba cuando se imprime
lo siento, todavía soy nuevo en el formato aquí
Solución
& amp; nbsp;
es una codificación específica de HTML.
Tenía razón la primera vez: la cadena de Java que corresponde a dos espacios es simplemente dos caracteres de espacio, por ejemplo,
String s = " ";
La llamada println () que intentó que debería funcionó. ¿Qué hiciste que te llevó a creer que se redujo a un solo espacio? Creo que tu problema está en otra parte ...
EDITAR:
Según su fragmento de código: ¿es COLUMNS
5, por casualidad? :-)
EDITAR DE NUEVO:
OK, si COLUMNS es 15, entonces este código dará como resultado r
con veinte espacios añadidos. Si desea estar realmente seguro, puede pasar por un depurador o colocar una declaración de registro sobre la línea r + =
para ver con seguridad cuántas veces se llama a la declaración.
También eche un vistazo a cómo se usa r
más adelante antes de que su salida se imprima en el lugar que está inspeccionando; tal vez su valor se trunca en algún momento, ya sea explícitamente en Java o tal vez incluso implícitamente (como estar almacenado en una columna de base de datos que tiene 10 caracteres demasiado estrechos antes de ser recuperado y mostrado más tarde).
Otros consejos
Si desea un espacio que no se rompa en su cadena, por cualquier razón, debe usar el literal Unicode:
System.out.println("banana\u00A0phone");
No necesita usar & amp; nbsp en Java. System.out.print (" ");
debería hacer el truco. Pruebe algo como:
System.out.print("This is the a string before spaces" + " " + "this is a string after spaces");
También puede crear un espacio sin interrupciones manteniendo presionada la tecla Alt y escribiendo 0160 en el teclado numérico.