如何输出具有数字和某些格式的数组

时间:2015-06-21 23:12:31

标签: java arrays

我是java的新手,我正在尝试输出这个数组: -5,-2,-12,7,3,15,10

看起来完全像这样: [0:-5,1:-2,2:12,3:7,4:3,5:15,6:10]

public static void array(int[] numbers) {
        int index = 0;
        System.out.print("[");
        for (int i = 0; i < numbers.length; i++){
            System.out.print(index + ": " + numbers[i] + ", ");
            index ++;
        }
        System.out.print("]");
}

当我运行我的代码时,它看起来应该是应该的,除了10之后有一个逗号。 关于如何摆脱最后一个逗号或更好的方法的任何想法?

感谢您的帮助! CK

6 个答案:

答案 0 :(得分:1)

当您在for循环中读取最后一个数组索引时,不需要在print语句中添加逗号。你走了:

   for (int i = 0; i < numbers.length; i++){
        if(i == numbers.length -1) {
           System.out.print(index + ": " + numbers[i]);
        } else {
           System.out.print(index + ": " + numbers[i] + ", ");
        }
        index ++;
    }

答案 1 :(得分:1)

由于您每次都需要逗号,但最后一次,您可以执行以下操作:

System.out.print(index + ": " + numbers[i] + (i != numbers.length-1 ? ", " : "");

这将打印出逗号,除非是在最后一次传递时。

此外,由于i从零到极限,因此您不需要index变量。您可以使用i代替`index'。

答案 2 :(得分:1)

如果它不是最后一个索引,你可以放一个只打印逗号的if语句。

for (int i = 0; i < numbers.length; i++){
    System.out.print(i + ": " + numbers[i]);
    if(i != numbers.length -1) {
       System.out.print(", ");
    }
}

或者,在循环之前打印第一个元素,然后用逗号打印每个后续元素。

System.out.println(0 + ": " + numbers[0]);

for (int i = 1; i < numbers.length; i++){
  System.out.print(", " + index + ": " + numbers[i]);
}

答案 3 :(得分:1)

我会实现这样的方法(请注意,您的实施中的index是多余的,因为它总是等于i):

public static void printArray(int[] numbers) {
    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < numbers.length; i++) {
        if (sb.length() > 0) {
            sb.append(", ");
        }
        sb.append(String.format("%d: %d", i, numbers[i]));
    }
    System.out.print("[" + sb.toString() + "]");
}

我正在使用StringBuilder,这样可以轻松(有效)从数组内容中组合单个String。当您想要创建格式化输出时,String.format非常有用。

答案 4 :(得分:1)

System.out.print("[");
for (int i = 0; i < numbers.length; i++){
    if(numbers.length -1==i)
       System.out.print(i+ ": " + numbers[i]);
     else 
       System.out.print(i + ": " + numbers[i] + ", ");          
}
System.out.print("]");

答案 5 :(得分:1)

对您的代码进行一些细微更改:

public static void array(int[] numbers) {
        //Check if the array isn't empty, you know, just in case ;)
        if (numbers.length == 0) {
            return
        }
        System.out.print("[ 0");
        for (int i = 0; i < numbers.length - 1; i++){
            System.out.print(": " + numbers[i] + ", " + (i+1));
        }
        System.out.print(": " + numbers[numbers.length-1] + " ]");
}

导致 [ 0: -5, 1: -2, 2: 12, 3: 7, 4: 3, 5: 15, 6: 10 ]