Используя StringBuilder, можем ли мы преобразовать его в строку с точкой с запятой в качестве разделителя строк? - PullRequest
0 голосов
/ 14 мая 2018

Если я использую StringBuilder, можем ли мы преобразовать его в String с точкой с запятой в качестве разделителя строк?

Итак, у меня есть объект StringBuilder, например,

SomeRecord s = SomeRecord.builder()
        .field1("A")
        .field2("B")
        .field3("C")
        .build();

Iнеобходимо преобразовать его в строку, но новая строка должна быть отделена с помощью ";"

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

В зависимости от того, как вы добавляете StringBuilder, вы можете использовать String.join вместо StringBuilder.

String[] datas = new String[]{"a", "b", "c"};
String s = String.join(";", datas);

а, б, с

Или с определенным числом значений, вы можете вызвать метод напрямую, так как это принимает параметр varargs CharSequence...:

String s = String.join(";", getFieldA(), getFieldB(), getFieldC());
0 голосов
/ 14 мая 2018

Это довольно окольный способ добавить точки с запятой между строками.Вместо этого рассмотрите возможность добавления вызова .append(";") после каждого другого вызова добавления или использования StringJoiner, как предлагает Jotunacorn.

Кроме того, для преобразования StringBuilder в String вызовите .toString()после того, как весь желаемый текст добавлен.

...