Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用for循环打印数组_Java - Fatal编程技术网

Java 如何使用for循环打印数组

Java 如何使用for循环打印数组,java,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;

我们需要为实验室打印数组,但我的教授不允许我们使用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

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

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

这是最后一个元素的代码,您不需要添加

公共字符串toString{ 字符串str=[; 对于int i=0;i干净的方法是使用Java8中引入的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]

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

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;  
}
如果i==data.length-1 str+=data[i];else str+=数据[i]+,;-将此保持在for循环中将有所帮助??