&nbsp字符在Java中无法正确显示

Bri*_*ian 1 java formatting whitespace spacing

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

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

任何帮助,将不胜感激.

编辑:

for (int j = 0; j < COLUMNS; j++)
  if (j < 10){
    r += "__";
  }
Run Code Online (Sandbox Code Playgroud)

产生10个空间,而不是像印刷时预期的20个空间

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

And*_*yle 6

&nbsp; 是一种特定于HTML的编码.

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

String s = "  ";
Run Code Online (Sandbox Code Playgroud)

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

编辑:

基于你的代码片段 - 是COLUMNS5,任何机会?:-)

再次编辑:

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

还可以看一下如何r在输出打印到您正在检查的位置之前使用它; 也许它的值在某些时候被截断,或者在Java中显式地或者甚至是隐式的(例如存储在10个字符太窄的数据库列中,然后再被检索和显示).


Jon*_*erg 6

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

System.out.println("banana\u00A0phone");
Run Code Online (Sandbox Code Playgroud)

  • 你*应该*使用unicode文字,这样你就可以清楚地了解你对隐形区分的意图. (4认同)