好吧所以我正在编写一个简单的小型StringBuilder,但我很好奇我将如何在参数后添加一些内容。例如,如果我这样做:
args[0] = "how"
args[1] = "do"
args[2] = "i"
args[3] = "google"
我怎么能这样做,输出是这样的:"怎么+做+ i + google",但是在最后一个参数的末尾没有加号?
这是我到目前为止所做的。
StringBuilder sb = new StringBuilder();
for (int i = 0; i < args.length; i++){
sb.append(args[i]).append(" ");
}
String allArgs = sb.toString().trim();
答案 0 :(得分:2)
在 Java8 中,您可以使用:
String.join(",", args);
答案 1 :(得分:1)
使用JDK8之前,您可以使用Guava's Joiner:
return Joiner.on("+").skipNulls().join(args);
对于JDK8来说,@ shipohi似乎已经足够好了,几乎没有更正:
return String.join("+", args);
扩展OP代码:
StringBuilder sb = new StringBuilder();
for (int i = 0; i < args.length; i++){
sb.append(args[i]);
if(i != (args.length - 1)) {
sb.append('+');
}
}
String allArgs = sb.toString().trim();
答案 2 :(得分:0)
这看起来像JDK中使用的习语:
public String buildX(String...strings) {
StringBuilder sb = new StringBuilder();
for (String string : strings) {
sb.append(string.toString()).append(",");
}
if(strings.length > 0)
sb.setLength(sb.length() - 1);
return sb.toString();
}
答案 3 :(得分:0)
使用以下代码。
public static void main(String[] args) {
StringBuffer str = new StringBuffer("ho");
StringBuffer str1=new StringBuffer("do");
StringBuffer str3 = new StringBuffer("i");
StringBuffer str4=new StringBuffer("google");
System.out.println(str.append(str1).append(str3).append(str4));
}
<强>交替强>
StringBuffer str = new StringBuffer("ho");
System.out.println(str.append("do").append("i").append("google"));
答案 4 :(得分:0)
还有另外两种方法
番石榴框架
Joiner.on( “+”)加入(Arrays.asList(字符串));
使用JDK8 Stream Api
Arrays.asList(字符串).stream() .collect(Collectors.joining( “+”))
答案 5 :(得分:0)
对现有代码的简单修改:
StringBuilder sb = new StringBuilder();
int i = 0;
for (; i < args.length -1; i++){
sb.append(args[i]).append(" ");
}
sb.append(args[i]);
String allArgs = sb.toString();