Java 如何不在空格分隔字符串的结尾或开头插入额外的空格
我想表示一个列表Java 如何不在空格分隔字符串的结尾或开头插入额外的空格,java,Java,我想表示一个列表[1,2,3,4],就像“\'1234\”。请注意转义引号以及它们与相邻数字之间缺少空格。我怎样才能做到这一点?这是一件很琐碎的事情,但很棘手,因为我使用的是树集,而不是数组。对于for循环,这是可能的,还是必须使用TreeSet迭代器 public String positionsRep(TreeSet<Integer> positions){ StringBuilder s = new StringBuilder(""); s.append("\"
[1,2,3,4]
,就像“\'1234\”
。请注意转义引号以及它们与相邻数字之间缺少空格。我怎样才能做到这一点?这是一件很琐碎的事情,但很棘手,因为我使用的是树集,而不是数组。对于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();
}
公共字符串位置rep(树集位置){
StringBuilder s=新的StringBuilder(“”);
s、 附加(\);
用于(整数位置:位置){
posStr=整数。toString(pos);
s、 附加(posStr);
s、 附加(“”);
}
s、 附加(\);
返回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();
}
甚至更短,使用流:
import java.util.stream.Collectors;
positions.stream().map(Integer::toString).collect(Collectors.joining(" ", "\"", "\""));
只需稍微不同地对待第一个数字:
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();
}
甚至更短,使用流:
import java.util.stream.Collectors;
positions.stream().map(Integer::toString).collect(Collectors.joining(" ", "\"", "\""));
您可以从该树集生成一个数组,并使用字符串属性通过空格连接元素,然后添加所需的特殊字符 例如:
TreeSet<String> playerSet = new TreeSet<String>();
playerSet.add("1");
playerSet.add("2");
playerSet.add("3");
playerSet.add("4");
StringBuilder sr = new StringBuilder();
sr.append("\"").append(String.join(" ", new ArrayList<String> (playerSet))).append("\"");
System.out.println(sr.toString());
TreeSet playerSet=new TreeSet();
playerSet.添加(“1”);
playerSet.添加(“2”);
playerSet.添加(“3”);
playerSet.添加(“4”);
StringBuilder sr=新的StringBuilder();
sr.append(“\”).append(String.join(“,新数组列表(playerSet)).append(“\”);
System.out.println(sr.toString());
您可以从该树集生成一个数组,并使用字符串属性通过空格连接元素,然后添加所需的特殊字符
例如:
TreeSet<String> playerSet = new TreeSet<String>();
playerSet.add("1");
playerSet.add("2");
playerSet.add("3");
playerSet.add("4");
StringBuilder sr = new StringBuilder();
sr.append("\"").append(String.join(" ", new ArrayList<String> (playerSet))).append("\"");
System.out.println(sr.toString());
TreeSet playerSet=new TreeSet();
playerSet.添加(“1”);
playerSet.添加(“2”);
playerSet.添加(“3”);
playerSet.添加(“4”);
StringBuilder sr=新的StringBuilder();
sr.append(“\”).append(String.join(“,新数组列表(playerSet)).append(“\”);
System.out.println(sr.toString());
当前实现有什么问题?它在最后一个引号之前添加了一个额外的空格。当前实现有什么问题?它在最后一个引号之前添加了一个额外的空格。