Вопрос

Я пытался " .&nbsp;&nbsp;" для отображения двух пробелов в стандартной выходной строке Java.Пытаясь System.out.println("__"); <---- (два пробела, но, очевидно, это сокращает его до одного пробела, отсюда и подчеркивание)

Я полагаю, что есть способ избежать &nbsp;, но я не могу ни разобраться в этом, ни найти помощь в Интернете.Поиск этого является ироничным, потому что много буквальных &nbsp;&nbsp; появляйся.

Будем признательны за любую помощь.

Редактировать:

for (int j = 0; j < COLUMNS; j++)
  if (j < 10){
    r += "__";
  }

создает 10 пробелов, а не 20, как ожидалось при печати

извините, я все еще новичок в форматировании здесь

Это было полезно?

Решение

&nbsp; это специфичная для HTML кодировка.

Вы были правы в первый раз - строка Java, которая соответствует двум пробелам, - это просто два пробельных символа, например

String s = "  ";

Вызов println(), который вы пытались следовало бы чтобы это сработало.Что вы сделали такого, что заставило вас поверить, что он был урезан до одного места?Я думаю, ваша проблема в другом...

Редактировать:

Основываясь на вашем фрагменте кода - это COLUMNS 5, случайно?:-)

ОТРЕДАКТИРУЙТЕ ЕЩЕ РАЗ:

Хорошо, если COLUMNS равно 15, то этот код приведет к r с добавлением к нему двадцати пробелов.Если вы хотите быть действительно уверены, вы можете либо выполнить пошаговое выполнение в отладчике, либо поместить инструкцию logging над r += строку, чтобы точно увидеть, сколько раз вызывается оператор.

Также взгляните на то, как r используется позже, прежде чем его выходные данные будут напечатаны в том месте, которое вы проверяете;возможно, его значение в какой-то момент усекается, либо явно в Java, либо, возможно, даже неявно (например, сохраняется в столбце базы данных, который слишком узок на 10 символов, прежде чем быть извлеченным и отображенным позже).

Другие советы

Если вам по какой-либо причине нужен неразрывный пробел в вашей строке, вы должны использовать литерал Unicode:

System.out.println("banana\u00A0phone");

Вам не нужно использовать в Java. System.out.print(" "); должно сработать.Попробуйте что-то вроде:

System.out.print("This is the a string before spaces" + "  " + "this is a string after spaces");

Вы также можете создать неразрывный пробел, удерживая клавишу Alt и набрав 0160 на цифровой клавиатуре.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top