我正在寻找一种打印整数数组的方法,如果该行超过68个元素,则在该行的末尾插入一个带有“ \”的换行符。
for (int i = 0; i<=n.length; i++) {
System.out.print(n[i]);
}
用于打印数组的每个元素,但是如何在x(在这种情况下为68)个元素之后插入换行符和反斜杠?
它应该像这样:
146346 ... 8 \
37453
答案 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
可能会在循环中产生错误
答案 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("\\");
}
谢谢大家!