我尝试做类似的事情:
{"semaforo":"icbc"},{"semaforo":"pepito"}
我有以下代码:
for (Iterator it = semaforosMiddleware.iterator(); it.hasNext();) {
KeyMapMediciones semaforoMiddleware = (KeyMapMediciones) it.next();
jsonFamilias.append("{\"semaforo\":\"" + semaforoMiddleware.getAplicacion() + "\"}");
if (it.hasNext()) {
jsonFamilias.append(",");
}
}
但我输出如下:
{"semaforo":"icbc"},{"semaforo":"pepito"},
我不想在最后一个元素之后输入最后一个逗号(",")。我该怎么办?
答案 0 :(得分:13)
我在这个网站上学到的最好最简单的技巧:
String separator = "";
for (String s : coll) {
buf.append(separator).append(s);
separator = ",";
}
答案 1 :(得分:3)
在下面找到Java 8解决方案。
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
String toString = list.stream().collect(Collectors.joining(", "));
System.out.println("toString = " + toString);
}
<强>输出强>
toString = one, two, three
答案 2 :(得分:2)
您发布的代码运行正常。这是一个简化的可运行示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String... args){
List<String> list = new ArrayList<>();
list.add("one");
list.add("two");
list.add("three");
StringBuilder sb = new StringBuilder();
for (Iterator<String> it = list.iterator(); it.hasNext();) {
String element = it.next();
sb.append(element);
if(it.hasNext()){
sb.append(", ");
}
}
System.out.println(sb.toString()); //prints: one, two, three
}
}
答案 3 :(得分:1)
您可以检查第一个元素(即在除第一个元素之外的每个元素之前添加逗号):
boolean first = true;
for (Iterator it = semaforosMiddleware.iterator(); it.hasNext();) {
if(!first){
jsonFamilias.append(",");
} else {
first = false;
}
KeyMapMediciones semaforoMiddleware = (KeyMapMediciones) it.next();
jsonFamilias.append("{\"semaforo\":\"" + semaforoMiddleware.getAplicacion() + "\"}");
}
答案 4 :(得分:0)
或者,您也可以这样做:
String jsonFamilias = semaforosMiddleware.stream()
.map(s -> "{\"semaforo\":\"" + s.getAplicacion() + "\"}")
.collect(Collectors.joining(","));
答案 5 :(得分:0)
StringBuilder stringBuilder = new StringBuilder("");
stringBuilder.append(Joiner.on(", ").join(semaforosMiddleware));
String resultString = stringBuilder.toString();
使用Joiner使这些场景更容易处理。