我希望使用guava的Joiner
将List<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个名称,但我希望用一些额外的字符串(每次都使用相同的字符串)来围绕每个字符串。
我希望我在这里足够清楚。谢谢你的帮助。
答案 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());
}