从print语句中删除最后一个分隔符

时间:2015-11-15 09:44:06

标签: java printing separator

这是一个排序整数数组的方法。如何从输出中删除最后一个分隔符?

public void Sort(int[] sort) {
        for (int a:sort) {
            System.out.print(a+ ", ");
        }
    }

输出

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 

期望输出

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

6 个答案:

答案 0 :(得分:7)

如果您使用的是Java 8,那么一个非常干净的解决方案就是使用新的StringJoiner类。此类旨在将Strings与自定义分隔符连接在一起,并且可能带有前缀/后缀。使用此类,您无需像在代码段中那样担心删除最后一个分隔符。

public void sort(int[] sort) {
    StringJoiner sj = new StringJoiner(",");
    for (int a : sort) {
        sj.add(String.valueOf(a));
    }
    System.out.println(sj.toString());
}

您也可以删除for循环并改为使用Streams:

String str = Arrays.stream(sort).mapToObj(String::valueOf).collect(joining(","));

答案 1 :(得分:2)

几个选项:

public void Sort(int[] sort) {
  for (int i = 0; i < sort.length; i++) {
     System.out.print(sort[i]);
     if (i < sort.length - 1) {
       // not the last element. Add separator
       System.out.print(" ,");  
     }
  }
}

另一种方式:

public void Sort(int[] sort) {
  String output = Arrays.toString(sort);
  System.out.println(Arrays.toString(output).substring(1, output.length-1));
}

答案 2 :(得分:1)

我认为这可以解决问题,只需尝试一下。

public static void sort(int[] sort) {
    for (int a:sort) {
        if(a==sort[sort.length-1])
            System.out.println(a);
        else
            System.out.print(a+ ", ");
    }

答案 3 :(得分:0)

    public void Sort(int[] sort) {
     int i = 1;
     String str = Arrays.toString(sort);

     str = str.substring(i,str.length()-1);
     System.out.println(str);
}

答案 4 :(得分:0)

您可以按如下方式使用StringBuilder:

72 49 23 5 9 10 6 16 26 54 14 55
75 50 25 0 10 0 0 20 30 55 15 60

编辑:这不是排序算法。这只是一个如何在没有最后一个逗号的情况下呈现它的示例。

答案 5 :(得分:0)

可以轻松完成以下操作:

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