在Java中,System.out.print()在达到特定限制后不会打印字符。

27 浏览
0 Comments

在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()只有在所有数字都适合一行时才打印。

现在我如何打印适合一行的所有数字,然后换行并打印剩下的数字?

0
0 Comments

问题的原因是在使用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"。但可以将其打印到文件中进行查看。

0