在java中不在末尾添加逗号

在java中不在末尾添加逗号,java,Java,我想打印出排序数组中的值,每个值在java中用逗号分隔。但是,我不希望最后一个值后面有逗号 for (double val : output.getPvalues()) { System.out.print(val + ","); } 现在,我的输出看起来是这样的,我不想在末尾加逗号 0.3151985084814564,0.12439565272818136,0.08395574717762709, 0.23648887465370277,0.13987884822617208,0

我想打印出排序数组中的值,每个值在java中用逗号分隔。但是,我不希望最后一个值后面有逗号

for (double val : output.getPvalues()) 
{
    System.out.print(val + ",");
}
现在,我的输出看起来是这样的,我不想在末尾加逗号

0.3151985084814564,0.12439565272818136,0.08395574717762709,
0.23648887465370277,0.13987884822617208,0.1316174439685804,
0.23774083903133078,0.14471871035755607,0.16040529724318148,
0.23138041484992727,0.12692146250237307,0.10444029009575935,
抱歉,这是我在java的第一天,我不知道如何找到这个对象的长度。如何执行此操作?

如果output.getPvalues返回数组,则可以使用:

double[] values = output.getPvalues();
for (int i = 0; i < values.length(); i++) {
     System.out.print(values[i]);
     if (i != values.length - 1) {
         System.out.print(",");
     }
}
或者,如果您使用的是Java 8,则可以使用streams和Collectors.joining,但这更高级。

如果output.getPvalues返回数组,则可以使用:

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

或者,如果您使用的是Java 8,则可以使用streams和Collector.joining,但这更高级。

将代码更改为以下代码片段:

StringBuffer stBuffValue = new StringBuffer();
for (double val : output.getPvalues()) 
{
    stBuffValue.append(val).append(",");
}
System.out.println(stBuffValue.substring(0, stBuffValue.length()-1));

将代码更改为以下代码段:

StringBuffer stBuffValue = new StringBuffer();
for (double val : output.getPvalues()) 
{
    stBuffValue.append(val).append(",");
}
System.out.println(stBuffValue.substring(0, stBuffValue.length()-1));

首先查看文档,查看output或output.getPValues中是否存在这样的方法。但是,即使没有它,您也不应该被阻止,因为至少有两种方法可以做到这一点:

boolean init = true;
for (double val : output.getPvalues()) {
    if (init) init = false;
    else      System.out.print(",");
    System.out.print(val);
}

// or
StringBuilder sb = new StringBuilder();
for (double val : output.getPvalues()) {
    sb.append(val);
    sb.append(",");
}
System.out.println(sb.substring(0,sb.length()-1);

首先查看文档,查看output或output.getPValues中是否存在这样的方法。但是,即使没有它,您也不应该被阻止,因为至少有两种方法可以做到这一点:

boolean init = true;
for (double val : output.getPvalues()) {
    if (init) init = false;
    else      System.out.print(",");
    System.out.print(val);
}

// or
StringBuilder sb = new StringBuilder();
for (double val : output.getPvalues()) {
    sb.append(val);
    sb.append(",");
}
System.out.println(sb.substring(0,sb.length()-1);

您可以跳过,最后使用\b

for (double val : output.getPvalues()) {  
System.out.print(val + ",");
}
System.out.print("\b\n");   // it will skip last , and add \n at last 

您可以跳过,最后使用\b

for (double val : output.getPvalues()) {  
System.out.print(val + ",");
}
System.out.print("\b\n");   // it will skip last , and add \n at last 

那么output.getPvalues是否实际返回数组、列表或其他内容呢?您不提供有关输出类的信息,因此…这取决于您从getPvalues获得的结果。如果它是一个列表,您可以使用.size或.length作为数组。Well does output的可能重复项的可能重复项。getPvalues实际上返回一个数组、列表或其他内容?您不提供有关输出类的信息,因此…这取决于从getPvalues获得的结果。如果它是一个列表,您可以使用.size或.length作为数组的可能副本@Dici:的可能副本,不在第二个版本中,不。。。当我开始工作的时候会编辑的。是的,我刚刚看到了这个,我认为第二部分已经足够了answer@Dici:已编辑-基本上与第一部分相同,但格式不同。@Dici:第二版本中没有,没有。。。当我开始工作的时候会编辑的。是的,我刚刚看到了这个,我认为第二部分已经足够了answer@Dici:现在编辑-基本上就像你的第一部分,但格式不同。这就是为什么我使用length-1,否则它将提供我们不需要的最后一个逗号。这就是为什么我使用length-1,否则它将提供我们不需要的最后一个逗号。我绝对不会开始为此使用正则表达式。这比它需要的要复杂得多,违反了Java命名约定,而且您甚至还没有展示它是如何适应这个问题的。这比需要的要复杂得多,违反了Java命名约定,而且您甚至还没有展示它如何与问题相适应。请您的答案解释一下为什么这段代码回答了这个问题?只有代码的答案是,因为它们不教授解决方案。您能请您的答案解释一下为什么这个代码回答这个问题吗?代码唯一的答案是,因为他们不教解决方案。