Можно ли использовать один StringBuilder для создания нескольких строк в Java? - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь создать определенное количество длинных строк. Должен ли я создать новый StringBuilder для каждой новой строки или можно создать несколько?

Мне нужно создать 4 строки s1, s2, s3, s4. Могут ли они все быть созданы как отдельные строки одним StringBuilder, или мне нужно создать новый StringBuilder для каждого s?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Да, один StringBuilder может использоваться для создания нескольких независимых строк

0 голосов
/ 11 апреля 2020

Можно ли использовать один StringBuilder для создания нескольких строк в Java?

Вы можете повторно использовать одну и ту же ссылку на StringBuilder, чтобы создать столько строк, сколько вам нужно, но каждый новая строка перезапишет старую строку в ней. StringBuilder не является контейнерным классом. Вам нужен контейнерный класс для хранения нескольких экземпляров String. Ниже приведен пример:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String args[]) {
        StringBuilder sb;
        List<StringBuilder> list = new ArrayList<StringBuilder>();

        sb = new StringBuilder("Hello");
        list.add(sb);

        sb = new StringBuilder("World");
        list.add(sb);

        System.out.println(sb);// Only the last value sb is constructed with
        System.out.println(list);// All the values added to list
    }
}

Вывод:

World
[Hello, World]

Обратите внимание, что вы можете объединить строки в одну строку, но они не будут дифференцируема. Даже если вам удастся разграничить их, поместив между ними какие-то разделители, их будет очень сложно и подвержено ошибкам.

...