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

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

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 

如果您使用的是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(",")); 

几种选择:

 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)); } 

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

 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+ ", "); } 
  public void Sort(int[] sort) { int i = 1; String str = Arrays.toString(sort); str = str.substring(i,str.length()-1); System.out.println(str); } 

您可以使用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()); 

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

轻松可以像下面这样做:

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