我想整齐地使用for循环打印一维数组 java

问题描述

我正在尝试在标签清晰的输出演示文稿中打印一维数组。我有一个不带任何参数来打印一维数组的方法,到目前为止,我已经创建了一个for循环,用于打印从id [0]到id [n-1]的数组内容。我要完成的主要任务是在我的main方法中,我将该方法显示3次数组。输出需要明确定义每个调用的结果。示例:A部分的结果:(43,45,43,4,5,)。我应该使用printf还是应该解决该问题。尝试在此网站上查看了一段时间,但找不到足够具体的信息来提供帮助。

到目前为止,我有

public void displaySubsets(){

   for(int i : array) {
   System.out.print("(");
   System.out.print(array[i]);
   System.out.print(")");

}

解决方法

您可以执行以下操作:

System.out.println(Arrays.toString(array));

,或者如果您想自己滚动。 (假设数组不为空或为null)。

System.out.print("(" + array[0]);
for (int i = 1; i < array.length; i++) {
   System.out.print("," + array[i]);
}
System.out.println(")");  
,

这是一种实现方式:

遍历数组,将数字串联到一个新的字符串变量中。

  static void printArray(){
    String printFormat = "";
    System.out.println("Array Length: " + array.length);\
    //iterate over the array
    for (int i=0; i < array.length; i++) {
      if (i+1 == array.length){
        //If is the last value in the array we don't want to add the ","
        //concatenate the array's value into a new string without ","
        printFormat = printFormat + array[i];
      }else{
        //concatenate the arrays value into a new string
        printFormat = printFormat + array[i] +",";
      }
    }
    System.out.println("Results for part A : (" + printFormat + ")");
  }

点击here to run the code

,

有多种方法可以实现:

我会选择我们的朋友“ Java 8 Streams”,更具体地说是Arrays类的stream()方法。它使它优雅,直观,高效。

package com.example;

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int arr[] = { 43,45,43,4,5 }; 
        System.out.print("(");
        Arrays.stream(arr)
              .forEach( e -> System.out.print(e + ",") );
        System.out.println(")");
    }
}

输出:(43,5,)

,

有很多方法可以解决这个问题。

替代1

可以做到这一点的一种方法就是:

System.out.println(Arrays.toString(array));

像其他提到的那样。

替代2

public static void main(String[] args) {
   Main main = new Main();
   int array[] = {43,5};
   System.out.println(main.printArray(array));
 }

public String printArray(int[] array){
    StringBuilder builder = new StringBuilder();
    builder.append("(");
    
    for(int i : array){
        builder.append(i);
        builder.append(",");
    }
    
    builder.append(")");
    return builder.toString();
}

我喜欢在打印时使用StringBuilder,因为它比执行System.out.println()更快。

希望它有用!