更有效的方法来避免两个for循环并将它们合并为一个?

The*_*exx 0 java for-loop

基本上,我得到了这个:

(path是一个字符串数组)

    String writer = "";
    for (int i = 0; i < path.length; i++) {
        writer += path[i] + "{";
    }
    writer += string;
    for (int i = 0; i < path.length; i++) {
        writer += "}";
    }
Run Code Online (Sandbox Code Playgroud)

但这看起来很丑陋而效率低下.有没有办法将它恰当地组合成一个for-loop?

Lot*_*har 5

这是一个没有for-loop 的解决方案,StringBuilder而是使用而不是+=-constructs,这会导致内存和性能问题.

StringBuilder firstPart = new StringBuilder();
StringBuilder lastPart = new StringBuilder();

Arrays.stream(path)
    .forEach(elem -> {
        firstPart.append(elem);
        firstPart.append("{");
        lastPart.append("}");
    });

firstPart.append(string);
firstPart.append(lastPart.toString());
String writer = firstPart.toString();
Run Code Online (Sandbox Code Playgroud)