簡體   English   中英

Java:打印數組元素並插入換行符

[英]Java: Print elements of array and insert line break

我正在尋找一種打印整數數組的方法,如果該行超過68個元素,則在該行的末尾插入一個帶有“ \\”的換行符。

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

用於打印數組的每個元素,但是如何在x(在這種情況下為68)元素之后插入換行符和反斜杠?

它看起來應該像這樣:

146346 ... 8 \\
37453

如果您使用的是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打印輸出而不在末尾添加新行。

這應該有幫助

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");
}

這將為您工作

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("\\");
}

在兩個循環中這樣做可能會更容易

    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可能會在循環中產生錯誤

鏈接到代碼

我在@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("\\");
     }

感謝大家!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM