字符在Java中无法正确显示

时间:2009-10-28 14:31:34

标签: java formatting whitespace spacing

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

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

任何帮助都将不胜感激。

编辑:

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

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

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

4 个答案:

答案 0 :(得分:6)

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

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

String s = "  ";

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

编辑:

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

再次编辑:

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

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:2)

您无需在Java中使用&amp; nbsp。 System.out.print(" ");应该做到这一点。尝试类似:

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

答案 3 :(得分:0)

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