我这样打印我的数组:
public void something () {
String out = (java.util.Arrays.toString(array)+(...));
showMessageDialog(null, out);
Main调用包含此方法的类中的另一个方法。 我想为数组的每8个值换行。我知道如果我在for循环中打印每个值,我可以这样做:
if (printed == 8) {
System.out.print("\n");
printed = 0;
但是使用Arrays.toString()时该怎么做? 感谢您的帮助!
答案 0 :(得分:0)
您可以使用java.lang.Instrumentation
通过调试代理在运行时更改方法的行为。例如,请参见:https://github.com/turn/RedefineClassAgent
答案 1 :(得分:0)
Arrays.toString
并不是您的正确选择,但是您可以使用Java流以或多或少的紧凑方式创建字符串。
String result = java.util.stream.IntStream
.range(0, array.length)
.mapToObj( i -> array[i] + ( ( (i + 1) %8 ) == 0 ? "\n":", " ) )
.collect( Collectors.joining("") );
答案 2 :(得分:0)
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + (i % 7 == 0 && i > 0 ? "\n" : ""));
}
答案 3 :(得分:-2)
可能,但不值得。
您可以使用扩展Array的类。然后,您需要重写toString()方法并根据需要实现它。但是要使用toString()的实现,所有数组都必须是新类的对象。然后,每个System.out.println()都将使用您的实现。
可能,但完全不值得。这是您和CPU时间的极大浪费。