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?
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?
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("}");
/* .. */
myslalem o jakims bardziej ogolnym rozwiazaniu np z patternami, ale nie wiem czy to w ogole mozliwe
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();
}
}
@Shalom to jest czad;) dziekuje
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()));
}
}
Szczerze?
String a = "jeden";
String b = "dwa";
String c = "trzy";
sb.append("{" + a + "}");
sb.append("{" + b + "}");
sb.append("{" + c + "}");