Java:打印数组元素并插入换行符

时间:2018-12-04 21:43:20

标签: java arrays

我正在寻找一种打印整数数组的方法,如果该行超过68个元素,则在该行的末尾插入一个带有“ \”的换行符。

for (int i = 0; i<=n.length; i++) {
         System.out.print(n[i]);
     }

用于打印数组的每个元素,但是如何在x(在这种情况下为68)个元素之后插入换行符和反斜杠?

它应该像这样:

146346 ... 8 \
37453

5 个答案:

答案 0 :(得分:1)

如果您使用的是Java 8+,则Stream API是for循环构造的一种非常流畅的替代方法:

int[] n = ...;
final int limit = 68;

System.out.println(""); // start on a new line

Arrays.stream(n)
      .mapToObj(i -> ((Integer) i).toString()) // convert ints to strings
      .forEach(s -> {
          int i = 0;
          while(i < s.length) {
              System.out.print(s.substring(i, i + limit));
              System.out.println(i + limit < s.length ? "\\" : "");
              i += limit;
          }
      });

或者,如果您使用的是Java版本,则可以使用for循环执行类似的操作:

int[] n = ...;
final int limit = 68;

System.out.println(""); // start on a new line

for (int i = 0; i < n.length; i++) {
    String s = Integer.toString(n[i]);
    int i = 0;

    while(i < s.length) {
        System.out.print(s.substring(i, i + limit));
        System.out.println(i + limit < s.length ? "\\" : "");
        i += limit;
    }
}

无论哪种方式,您只需要先将整数转换为字符串,然后一次仅打印长度不超过68个字符的子字符串即可。 System.out.print打印输出而不在末尾添加新行。

答案 1 :(得分:0)

这应该有帮助

int[] intArray = { 7, 9, 5, 1, 3,... };       
for(int i = 0; i<intArray.length; ++i) 
{
// print elements
 System.out.print(intArray[i]);
// if there is 68 element printed, then print \
 if(i % 68 == 0)
  System.out.print("\ \r\n");
}

答案 2 :(得分:0)

这将为您服务

for (int i = 0; i< n.length; i++) {
     System.out.print(n[i]);
     // every 68 iterations prints a \ and new line
     if((i + 1) % 68 == 0) System.out.println("\\");
}

答案 3 :(得分:0)

在两个循环中进行操作可能会更容易

    String string = "";
    int size = 68;
    for(int i = 0; i < n.length; i++) {
        string += n[i];
    }
    for(int i = 0; i < string.length() / size + 1; i++) {
        System.out.print(string.substring(i * size, Math.min((i + 1) * size, string.length())));
        System.out.println("\\");
    }

请确保您使用i < n.length,因为i <= n.length可能会在循环中产生错误

Link to code

答案 4 :(得分:0)

我在@elbraulio的帮助下解决了这个问题。

for (int i = 0; i<n.length; ++i)
        n[i]=i;
    for (int i = 0; i<n.length; ++i) {
         System.out.print(n[i]);
         if (i%68 == 0 && i !=0) System.out.println("\\");
     }

谢谢大家!