我尝试过“& nbsp;& nbsp; "在标准输出Java String中显示两个空格。尝试 System.out.println(" __"); < ----(两个空格,但很明显,它将它修剪为一个空格,因此是下划线)

我想有办法逃脱& nbsp; ,但我无法弄明白,也无法在线寻求帮助。搜索它具有讽刺意味,因为很多文字& nbsp;& nbsp; 出现了。

任何帮助都将不胜感激。

编辑:

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

产生10个空格,而不是像打印时预期的那样20个

抱歉,我仍然是格式化的新手

有帮助吗?

解决方案

&amp; nbsp; 是特定于HTML的编码。

你是第一次 - 对应于两个空格的Java字符串只是两个空格字符,例如

String s = "  ";

您尝试应该的println()调用已经有效。你做了什么让你相信它被削减到一个空间?我认为你的问题在其他地方......

编辑:

基于您的代码段 - COLUMNS 5,有机会吗? : - )

再次编辑:

好的,如果COLUMNS为15,则此代码将导致 r 附加20个空格。如果你想确定你可以在调试器中单步执行,或者在 r + = 行上面放一个日志语句,以确定该语句的调用次数。

还要看看 r 在输出打印到你正在检查的地方之前是如何使用的;也许它的值在某些时候被截断,或者在Java中显式地或者甚至是隐式的(例如存储在10个字符的数据库列中,之后被检索并稍后显示)。

其他提示

如果您想在字符串中使用不间断的空格,无论出于何种原因,您必须使用Unicode文字:

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

您无需在Java中使用&amp; nbsp。 System.out.print(&quot;&quot;); 应该可以解决问题。尝试类似:

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

您还可以通过按住Alt键并在数字键盘上键入0160来创建不间断的空格。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top