从打印语句中删除最后一个分隔符
Remove last separator from print statement
这是一种对整数数组进行排序的方法。如何从输出中删除最后一个分隔符?
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) {
int i = 1;
String str = Arrays.toString(sort);
str = str.substring(i,str.length()-1);
System.out.println(str);
}
几个选项:
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));
}
您可以按如下方式使用 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,一个非常干净的解决方案是使用新的 StringJoiner
class。 class 旨在将字符串与自定义分隔符连接在一起,并且可能带有前缀/后缀。使用此 class,您无需像在代码段中那样担心删除最后一个分隔符。
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(","));
像下面这样很容易做到:
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+ ", ");
}
这是一种对整数数组进行排序的方法。如何从输出中删除最后一个分隔符?
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) {
int i = 1;
String str = Arrays.toString(sort);
str = str.substring(i,str.length()-1);
System.out.println(str);
}
几个选项:
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));
}
您可以按如下方式使用 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,一个非常干净的解决方案是使用新的 StringJoiner
class。 class 旨在将字符串与自定义分隔符连接在一起,并且可能带有前缀/后缀。使用此 class,您无需像在代码段中那样担心删除最后一个分隔符。
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(","));
像下面这样很容易做到:
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+ ", ");
}