我想表示[1,2,3,4]
列表"\"1 2 3 4\""
。请注意转义的报价以及它们与相邻数字之间缺少空格。我怎样才能做到这一点?这是一件非常简单的事情,但由于我正在使用TreeSet而不是数组,因此它很棘手。这甚至可以使用for循环,还是必须使用TreeSet迭代器?
public String positionsRep(TreeSet<Integer> positions){
StringBuilder s = new StringBuilder("");
s.append("\"");
for(Integer pos: positions){
posStr = Integer.toString(pos);
s.append(posStr);
s.append(" ");
}
s.append("\"");
return s.toString();
}
答案 0 :(得分:2)
只是区别对待第一个数字:
public String positionsRep(TreeSet<Integer> positions){
StringBuilder s = new StringBuilder("");
s.append("\"");
boolean isFirst = true;
for(Integer pos: positions){
if (!isFirst) {
s.append(" ");
}
posStr = Integer.toString(pos);
s.append(posStr);
isFirst = false;
}
s.append("\"");
return s.toString();
}
但是,最好只使用StringJoiner代替StringBuilder
,如果使用(" ", "\"", "\"")
进行初始化,它会完全符合您的要求。这看起来应该是这样的:
StringJoiner sj = new StringJoiner(" ", "\"", "\"");
for (Integer i: positions) {
sj.add(i.toString());
}
String result = sj.toString();
甚至更短的使用流:
import java.util.stream.Collectors;
positions.stream().map(Integer::toString).collect(Collectors.joining(" ", "\"", "\""));
答案 1 :(得分:0)
您可以从该TreeSet生成一个数组,并使用字符串属性通过空格连接元素,然后添加您需要的特殊字符
示例:
<option value="">----------------</option>
<option value="0">1111111111</option>
<option value="1">1212121212</option>