Символ не отображается правильно в Java - PullRequest
1 голос
/ 28 октября 2009

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

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

Любая помощь будет оценена.

EDIT:

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

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

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

Ответы [ 4 ]

6 голосов
/ 28 октября 2009

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

System.out.println("banana\u00A0phone");
6 голосов
/ 28 октября 2009

&nbsp; - HTML-специфическая кодировка.

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

String s = "  ";

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

EDIT:

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

ИЗМЕНИТЬ СНОВА:

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

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

2 голосов
/ 28 октября 2009

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

System.out.print("This is the a string before spaces" + "  " + "this is a string after spaces");
0 голосов
/ 28 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...