争论后添加一些东西?

时间:2015-08-05 10:03:11

标签: java string

好吧所以我正在编写一个简单的小型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();

6 个答案:

答案 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)

还有另外两种方法

  1. 番石榴框架

    Joiner.on( “+”)加入(Arrays.asList(字符串));

  2. 使用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();