gpt4 book ai didi

java - 如何不在空格分隔的字符串的末尾或开头插入额外的空格

转载 作者:行者123 更新时间:2023-12-02 02:20:10 25 4
gpt4 key购买 nike

我想表示一个列表[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();
}

最佳答案

只需稍微不同地对待第一个数字:

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(" ", "\"", "\""));

关于java - 如何不在空格分隔的字符串的末尾或开头插入额外的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48611909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com