dodanie {} po stringach

0

appenduje sobie stringi:

 String a = "jeden";
        String b = "dwa";
        String c = "trzy";
        sb.append(a);
        sb.append(b);
        sb.append(c);

chcialbym zeby docelowy string wygladał nastepujaca {raz}{dwa}{trzy} Czego uzyc?

0

W tym konkretnym przypadku?

Pewnie coś takiego da radę:

String a = "{jeden}";
String b = "{dwa}";
String c = "{trzy}";
sb.append(a);
sb.append(b);
sb.append(c);

;-)

Ogólnie, na przykład:

sb.append("{");
sb.append(a);
sb.append("}");

/* .. */
0

myslalem o jakims bardziej ogolnym rozwiazaniu np z patternami, ale nie wiem czy to w ogole mozliwe

4

Wersja enterprajs ready:

public class BracketedStringBuilder implements Appendable {

    private final StringBuilder sb = new StringBuilder();

    @Override
    public Appendable append(CharSequence csq) {
        return sb.append(decorate(csq));
    }

    private String decorate(CharSequence csq) {
        return "{" + csq + "}";
    }

    private String decorate(char c) {
        return decorate(String.valueOf(c));
    }

    @Override
    public Appendable append(CharSequence csq, int start, int end) {
        return sb.append(decorate(csq), start, end);
    }

    @Override
    public Appendable append(char c) {
        return sb.append(decorate(c));
    }

    @Override
    public String toString() {
        return sb.toString();
    }
}

0

@Shalom to jest czad;) dziekuje

3

To jeszcze wersja dla ludzi, którzy nadużywają lambd:

public class StringJoiner {

	public static void main(String[] args) {
		String a = "jeden";
		String b = "dwa";
		String c = "trzy";
		System.out.println(Stream.of(a, b, c).map(i->String.format("{%s}", i)).collect(Collectors.joining()));
	}
}
0

Szczerze?

 String a = "jeden";
 String b = "dwa";
 String c = "trzy";
 sb.append("{" + a + "}");
 sb.append("{" + b + "}");
 sb.append("{" + c + "}");

1 użytkowników online, w tym zalogowanych: 0, gości: 1