使用 println() 在 Eclipse 控制台上不显示某些字符
Some characters not displayed on the Eclipse console with println()
最近遇到一个奇怪的问题。我正在使用 StringBuffer
创建一个字符串,当我向该字符串添加一些空格时,我意识到有些字符不见了。
例子:
public static void main(String[] args) throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("000.00 ");
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
System.out.println(sb.toString());
System.out.println(sb.toString().charAt(4));
}
public static String filler(Integer size) {
return String.join("", Collections.nCopies(size, " "));
}
在 Eclipse 中输出 运行ning:
000.
0
filler
是一个创建空白字符串的函数。
当我 运行 那个时,我的初始字符串简单的最后两个零消失了。奇怪的是,如果我打印那些位置的位置值,就会出现零。
这是 StringBuffer class 上的某种错误吗?
这是一个 渲染 问题,可能是您的 IDE 特有的,因为您输出的 String
具有相对重要的字符数。
如果我 运行 你在 Eclipse 上的程序我 看到 确实是一个意外的输出 :
000.
虽然我希望 000.00
作为行的开头。
但是如果我复制 Eclipse 控制台中生成的行的开头并将其粘贴到其他地方,我会看到预期的输出:
000.00
创建 StringBuilder
的子字符串,您可以看到准确的可见输出:
System.out.println(sb.substring(0,6));
仅供参考,问题仅出现在最后 append()
:
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800)); // issue in the output from there
请注意,您可以在 Eclipse 首选项中强制设置 最大字符宽度 。每次达到一行的最大字符宽度时都会导致换行。
例如,使用此设置,我现在可以看到预期的输出:
000.00
但作为副作用,每次我的行超过固定限制时,我都会在输出中出现 breakline
。
最近遇到一个奇怪的问题。我正在使用 StringBuffer
创建一个字符串,当我向该字符串添加一些空格时,我意识到有些字符不见了。
例子:
public static void main(String[] args) throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("000.00 ");
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
System.out.println(sb.toString());
System.out.println(sb.toString().charAt(4));
}
public static String filler(Integer size) {
return String.join("", Collections.nCopies(size, " "));
}
在 Eclipse 中输出 运行ning:
000.
0
filler
是一个创建空白字符串的函数。
当我 运行 那个时,我的初始字符串简单的最后两个零消失了。奇怪的是,如果我打印那些位置的位置值,就会出现零。
这是 StringBuffer class 上的某种错误吗?
这是一个 渲染 问题,可能是您的 IDE 特有的,因为您输出的 String
具有相对重要的字符数。
如果我 运行 你在 Eclipse 上的程序我 看到 确实是一个意外的输出 :
000.
虽然我希望 000.00
作为行的开头。
但是如果我复制 Eclipse 控制台中生成的行的开头并将其粘贴到其他地方,我会看到预期的输出:
000.00
创建 StringBuilder
的子字符串,您可以看到准确的可见输出:
System.out.println(sb.substring(0,6));
仅供参考,问题仅出现在最后 append()
:
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800));
sb.append(filler(800)); // issue in the output from there
请注意,您可以在 Eclipse 首选项中强制设置 最大字符宽度 。每次达到一行的最大字符宽度时都会导致换行。
例如,使用此设置,我现在可以看到预期的输出:
000.00
但作为副作用,每次我的行超过固定限制时,我都会在输出中出现 breakline
。