问题描述
String stringArray[] = {
"Apple a Day Keep You Away","Banana a Day Keep Her Away","Cat like Dog"};
StringBuffer sb = new StringBuffer();
for (int i = 0; i < stringArray.length; i++) {
sb.append(stringArray[i]);
}
String str = sb.toString();
System.out.println(str);
我这样写是不是会变成Apple a Day Keep You AwayBanana a Day Keep Her AwayCat like Dog
或者我需要添加和\n
这样的sb.append(stringArray[i] + "\n")
才能得到我想要的东西。
Apple a Day Keep You Away
Banana a Day Keep Her Away
Cat like Dog
解决方法
除了使用 StringBuffer
,您还可以使用 StringJoiner
为所有字符串附加一个分隔符。这也可以防止在上次结果后添加额外的新行
String stringArray[] = {"Apple a Day Keep You Away","Banana a Day Keep Her Away","Cat like Dog"};
StringJoiner joiner = new StringJoiner("\n");
for(int i = 0; i < stringArray.length; i++) {
joiner.add(stringArray[i]);
}
String str = joiner.toString();
System.out.println(str);
您甚至可以使用流式 API 并使用换行符将结果附加到那里。
String stringArray[] = {"Apple a Day Keep You Away","Cat like Dog"};
String str = Arrays.stream(stringArray).collect(Collectors.joining("\n"));
System.out.println(str);
,
从 Java 8 开始,您可以使用 String.join
方法:
String stringArray[] = {
"Apple a Day Keep You Away","Cat like Dog"};
String str = String.join("\n",stringArray);
System.out.println(str);
输出:
Apple a Day Keep You Away
Banana a Day Keep Her Away
Cat like Dog