如何删除循环中字符串中的最后一个分隔符?

时间:2016-09-04 02:12:35

标签: java string loops for-loop

我已经搜索了这个问题的时间,但我没有运气。

在Java中,我试图获得这种输出:

  

1,2,3

(不使用StringBuilder)

我得到的结果是:

  

1,2,3,

代码:

for(int i=1; i <= 3; i++){
    String output = "";
    output += i + ", ";
    System.out.print(output);
}

p.s我没有为我的代码使用任何数组。

7 个答案:

答案 0 :(得分:1)

  

在进行最终打印时要小心,因为您有一个累加器字符串变量,用于在最后进行印象   另外还要考虑你声明变量内的变量将在几次迭代时创建变量,最好在循环之前作证

使用substring需要两个参数开始位置,结束位置

String output = "";
 for(int i=1; i <= 3; i++){
  output += i + ", ";
}
System.out.print(output.substring(0, output.length()-2)); 
//obtains from 1, 2.3 and omit the, end with the length () - 1 as the final //position

<强>输出中

  

1,2,3

答案 1 :(得分:1)

这是一个变体,它在循环中只有一个三元表达式来构建你想要的输出。

String output = "";
for (int i=1; i <= 3; i++) {
    output += (i > 1) ? ", " + i : i;
}

System.out.print(output);

答案 2 :(得分:1)

使用Java 8可以使用join函数实现。

String.join(“,”,list)

答案 3 :(得分:1)

虽然可能有很多方法可以做到这一点,但我最喜欢的方法是在for循环中不引入任何不必要的比较。

所以你可以做的只是第一个字符,你可以直接把它放在循环外的字符串中,对于所有其他字符,你可以用原始字符串附加", <number>"

String output = "1";

for(int i=2; i <= 3; i++){
    output += ", " + i;
}

System.out.print(output);

答案 4 :(得分:0)

易:

String output = "1";
for(int i=2; i <= 3; i++){
    output += ", " + i;
}
System.out.print(output)

那会给你

  

1,2,3

无需使任务复杂化。这种事情总是出现。只需将第一种情况视为一种特殊情况。

答案 5 :(得分:0)

尝试更容易,只需检查字符串长度,如果变量附加分隔符

-src
--bitbucket.org
---eagleamulet
----myFirst.go (package main)
-----utils
------tempconv
-------tempconv.go (package tempconv)

JQuery的代码段:

&#13;
&#13;
String output = "";
for(int i=1; i <= 3; i++){
   if(output .length>0)
   {
     output +=',';
   }
   output += i;
   System.out.print(output);
}
&#13;
var output = "";
for(var i=1; i <= 3; i++){
   if(output .length>0)
   {
     output +=',';
   }
   output += i;
   console.log(output);
}
&#13;
&#13;
&#13;

答案 6 :(得分:0)

您只需使用 java 8 stream api

即可
List<Integer> list = new ArrayList<>();
   list.add(1);
   list.add(2);
   list.add(3);
String s = list.stream().map(i -> i.toString ()).collect(Collectors.joining(","));