Java 从打印语句中删除最后一个分隔符

Java 从打印语句中删除最后一个分隔符,java,printing,separator,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,

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

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
两种选择:

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(" ,");  
     }
  }
}

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

    StringBuilder sb =new StringBuilder();
    int[] sort = {1,2,3,4,5,7,89,4,9,6,11,23,178,29};
    for(int i : sort) sb.append(i+", ");
    if(sb.length()>2)       sb.delete(sb.length()-2, sb.length());
    System.out.println(sb.toString());

编辑:这不是排序算法。这只是一个示例,说明了如何在不使用最后一个逗号的情况下表示它。

如果您使用的是Java 8,一个非常干净的解决方案就是使用新类。此类被设计为使用自定义分隔符将字符串连接在一起,并且可能使用前缀/后缀。使用这个类,您不必像在代码段中那样担心删除最后一个分隔符

public void sort(int[] sort) {
    StringJoiner sj = new StringJoiner(",");
    for (int a : sort) {
        sj.add(String.valueOf(a));
    }
    System.out.println(sj.toString());
}
您也可以删除
for
循环,改为使用流:

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

您可以轻松地执行以下操作:

    for (int i = 0; i < sort.length; i++) {
       System.out.print(i < sort.length-1 ?sort[i]+", " : sort[i]+"");
    }
for(int i=0;i
我想这可以解决问题,试试看

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+ ", ");
    }

我喜欢它,但我如何格式化它?例如,去掉括号这可能最好不要先加逗号,而不是先加后去掉。@b确实,不要说这是最好的删除方法。这只是一个选择。第一个选择很好。对于第二个选项,我得到了一个错误:
类型数组中的toString(long[])方法不适用于参数(String)
,它不应该是
output.length()
    for (int i = 0; i < sort.length; i++) {
       System.out.print(i < sort.length-1 ?sort[i]+", " : sort[i]+"");
    }
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+ ", ");
    }