有没有办法连接字符串,每个字符串都有一个特定的周围字符串?

时间:2013-11-25 21:21:53

标签: java string guava

我希望使用guava的JoinerList<String>加入到一个字符串中,但是在列表中的每个字符串周围都有周围的字符串。所以我想列出一个字符串列表:

List<String> names = Arrays.asList("John", "Mary", "Henry");

并生成这一个字符串:

"your guest John is here, your guest Mary is here, your guest Henry is here"

我看到使用Joiner的示例似乎是生成由逗号分隔的3个名称,但我希望用一些额外的字符串(每次都使用相同的字符串)来围绕每个字符串。

我希望我在这里足够清楚。谢谢你的帮助。

3 个答案:

答案 0 :(得分:15)

执行此操作的方法是使用转换,首先:

 Joiner.on(", ").join(Iterables.transform(names, new Function<String, String>() {
   public String apply(String str) { return "your guest " + str + " is here"; }
 }));

答案 1 :(得分:4)

怎么样

    String str = "your guest " + Joiner.on(" is here, your guest ").join(names) + " is here";

答案 2 :(得分:0)

如果Joiner不是必须的,您可以使用String.format()

public static void main(String[] args) {
        List<String> names = Arrays.asList("John", "Mary", "Henry");
        StringBuilder builder = new StringBuilder();

        for(int i=0; i<names.size();i++){
            builder.append(String.format("your guest %s is here, ", names.get(i)));
        }
        System.out.println(builder.substring(0,builder.length()-2).toString());
    }