为什么';t append(inti)在Java中为StringBuilder工作?

为什么';t append(inti)在Java中为StringBuilder工作?,java,stringbuilder,Java,Stringbuilder,我使用for()循环将整数附加到Java中的StringBuilder。但是,整数的附加大小似乎有一个限制,并且不同计算机的限制不同。例如,下面代码的结果就是“abc”;但当变量“i”设置为100时,它工作并打印“abc01234567…”。谁能解释一下为什么会这样 StringBuilder sb = new StringBuilder("abc"); for(int i = 0; i < 1000; i ++){ sb.append(i); } System.out.prin

我使用for()循环将整数附加到Java中的
StringBuilder
。但是,
整数
的附加大小似乎有一个限制,并且不同计算机的限制不同。例如,下面代码的结果就是“abc”;但当变量“i”设置为100时,它工作并打印“abc01234567…”。谁能解释一下为什么会这样

StringBuilder sb = new StringBuilder("abc");
for(int i = 0; i < 1000; i ++){
     sb.append(i);
}
System.out.println(sb);
StringBuilder sb=新StringBuilder(“abc”);
对于(int i=0;i<1000;i++){
某人(i);
}
系统输出打印LN(sb);

我无法复制此内容。您运行的是哪个平台和Java版本?我正在使用JavaSE1.8开发WindowsEclipse。请尝试将变量“i”增加到10000或更大。在这种情况下,它看起来像是Eclipse问题,而不是Java问题。尝试将其打印到文件而不是终端。稍后也尝试在Eclipse之外打开该文件。您是正确的。它可以在打印到文件时工作,我也尝试了NetBeans,它也可以在那里工作。感谢您的帮助。这是Eclipse控制台中的一个bug(IMO)。您可以通过选择“窗口>首选项>运行/调试>控制台”,选中/选择“固定宽度控制台”复选框,并将“最大字符宽度”设置为适合您的值来解决此问题。非常奇怪的是,如果运行示例代码,打开“首选项”窗口,选中复选框并单击“应用”,所有输出都会神奇地出现。