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());

当前实现有什么问题?它在最后一个引号之前添加了一个额外的空格。当前实现有什么问题?它在最后一个引号之前添加了一个额外的空格。