在Java中,System.out.print()在达到特定限制后不会打印字符。
在Java中,System.out.print()在达到特定限制后不会打印字符。
我有以下代码
public class Test { public static void main(String[] args) { int []n= new int[6000]; for(int i=0;i<6000;i++){ n[i]=1; } for(int i=0;i<6000;i++){ System.out.print(n[i]); } }
控制台没有输出。然而,如果我减少循环的限制,如下所示,
for(int i=0;i<3000;i++){ System.out.print(n[i]); }
现在我可以看到输出。看起来System.out.print()只有在所有数字都适合一行时才打印。
现在我如何打印适合一行的所有数字,然后换行并打印剩下的数字?
问题的原因是在使用System.out.print()方法打印字符时,只能打印一定数量的字符后才能换行。解决方法是在达到指定的一行字符数量后,手动换行。下面是一个解决该问题的Java代码示例:
import java.util.Arrays; public class Main { public static void main(String[] args) { int[] n = new int[6000]; Arrays.fill(n, 1); int lineLength = 80; int timesPrinted = 0; for (int element : n) { System.out.print(element); if (timesPrinted == lineLength) { System.out.print("\n"); timesPrinted = 0; } else { timesPrinted++; } } } }
在上述代码中,首先创建了一个大小为6000的整数数组,并将每个元素的值设置为1。然后,定义了一个变量lineLength,用于指定每行的字符数量限制。接下来,使用for-each循环遍历数组中的每个元素,并使用System.out.print()方法打印出来。在每次打印后,通过判断timesPrinted是否等于lineLength来确定是否需要换行。如果满足条件,使用System.out.print("\n")进行换行操作,并将timesPrinted重置为0;否则,将timesPrinted加1。通过这种方式,可以在达到每行字符数量限制时自动换行,从而实现在打印一定数量字符后换行的效果。
需要注意的是,使用Eclipse进行打印时,可能无法正常在控制台输出"entire line"。但可以将其打印到文件中进行查看。