[英]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.