Java 有没有一种方法可以连接字符串,每个字符串周围都有一个特定的字符串?
我想用番石榴的Java 有没有一种方法可以连接字符串,每个字符串周围都有一个特定的字符串?,java,string,guava,Java,String,Guava,我想用番石榴的Joiner将List连接成一个字符串,但是列表中的每个字符串周围都有环绕的字符串。因此,我想要一个字符串列表: List<String> names = Arrays.asList("John", "Mary", "Henry"); 我看到的使用Joiner的示例似乎是生成由逗号分隔的3个名称,但我希望用一些额外的字符串(每次都是相同的字符串)围绕每个字符串 我希望我在这里说得够清楚了。感谢您的帮助。实现这一点的方法是使用转换,首先: Joiner.on(", "
Joiner
将List
连接成一个字符串,但是列表中的每个字符串周围都有环绕的字符串。因此,我想要一个字符串列表:
List<String> names = Arrays.asList("John", "Mary", "Henry");
我看到的使用Joiner
的示例似乎是生成由逗号分隔的3个名称,但我希望用一些额外的字符串(每次都是相同的字符串)围绕每个字符串
我希望我在这里说得够清楚了。感谢您的帮助。实现这一点的方法是使用转换,首先:
Joiner.on(", ").join(Iterables.transform(names, new Function<String, String>() {
public String apply(String str) { return "your guest " + str + " is here"; }
}));
Joiner.on(“,”).join(Iterables.transform(名称,新函数)(){
公共字符串apply(stringstr){返回“您的来宾”+str+“在这里”;}
}));
怎么样
String str = "your guest " + Joiner.on(" is here, your guest ").join(names) + " is here";
如果Joiner不是必须的,您可以使用
String.format()
publicstaticvoidmain(字符串[]args){
List name=array.asList(“约翰”、“玛丽”、“亨利”);
StringBuilder=新的StringBuilder();
对于(int i=0;iYou不能仅使用Joiner
Joiner
将内容放在元素之间,而不是放在元素周围。请查看此详细说明。F*是的,函数式编程!对于Java 8,names.stream().map(name->“您的来宾”+name+“在这里”).collector(收集器.joining(“,”)
。Joiner
的关键是避免这样的解决方案,所以+0。另外,您不应该在循环中连接结果
,而是将它的新部分附加到StringBuilder
。我猜Natix指的是一个事实,即部分文本被硬编码了两次
String str = "your guest " + Joiner.on(" is here, your guest ").join(names) + " is here";
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());
}