如何使用for循环打印数组

时间:2020-11-04 04:30:12

标签: java

我们需要为实验室打印阵列,但我的教授不允许我们使用java.util.Array。预期的输出是:

[1, 5, 6, 9, 10]

我尝试使用for循环来打印这些值,但是它始终在末尾打印额外的“,”:

[1, 5, 6, 9, 10, ]

我尝试了几种不同的方法,但无法弄清楚:

public String toString() {
     
     String str = "[";
     
     for (int i = 0; i < data.length; i++) {
         
         str += data[i] + ", ";
         
     } // End of for loop
     
     str += "]";
         
     return str;    
     
 } // End of method

4 个答案:

答案 0 :(得分:2)

您可以按如下所示有条件地添加逗号:

public String toString() {
     
     String str = "[";
     
     for (int i = 0; i < data.length; i++) {
         if(i == (data.length - 1)){
            str += data[i];
         } else {
            str += data[i] + ", ";
         }
         
         
     } // End of for loop
     
     str += "]";
         
    return str; 
     
 } // End of method

答案 1 :(得分:1)

这是代码,您无需为最后一个元素添加“,”

public String toString() {
     
     String str = "[";
     
     for (int i = 0; i < data.length-1; i++) {
         
         str += data[i] + ", ";
         
     } // End of for loop
     str += data[data.length-1];// for the last element don't need to use ","

     str += "]";
         
    return str; 
     
 } // End of method

答案 2 :(得分:0)

干净的方法是使用Java 8中引入的StringJoiner

int[] data = new int[]{ 1,2,3,4,5,6,7,8,9,10 }; 

StringJoiner sj = new StringJoiner(", ","[","]");

for(int i=0;i<data.length;i++){
    sj.add(String.valueOf(data[i]));
}

System.out.println(sj.toString());

//[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

答案 3 :(得分:0)

您还可以使用三元运算符来编写代码,如下所示:

public static String toString(String[] data) {
    String str = "[";
    
    for (int i = 0; i < data.length; i++) {
        str += (i == (data.length -1)) ? data[i] : data[i] + ", ";  
    }
    str += "]";
    
    return str;  
}