Конвертировать ArrayList <Characters>в строку - PullRequest
5 голосов
/ 08 декабря 2011

Есть ли простой способ преобразования ArrayList, который содержит только символы, в строку? Скажем, у нас есть

ArrayList<Character> arrayListChar = new ArrayList<Character>();
arrayListChar.add(a);
arrayListChar.add(b);
arrayListChar.add(c);

Итак, список массивов содержит a, b и c. В идеале я хотел бы превратить это в строковый "abc".

Ответы [ 7 ]

3 голосов
/ 08 декабря 2011

Вы можете использовать Класс Apache Common Lang StringUtils.Он имеет функцию join(), как в PHP.

Тогда код:

StringUtils.join(arrayListChar, "")

будет генерировать:

abc
3 голосов
/ 08 декабря 2011
Iterator<Character> it = arrayListChar.iterator();
StringBuilder sb = new StringBuilder();

while(it.hasNext()) {
    sb.append(it.next());
}

System.out.println(sb.toString());
1 голос
/ 08 декабря 2011
    int size = list.size();
    char[] chars = new char[size];
    for (int i = 0; i < size; i++) {
        if (list.size() != size) {
            throw new ConcurrentModificationException();
        }
        chars[i] = list.get(i);
    }
    String s = new String(chars);
0 голосов
/ 08 декабря 2011

Использование регулярного выражения magic:

String result = list.toString().replaceAll(", |\\[|\\]", "");

Получите строковое представление списка, равное

[a, b, c]

, а затем удалите строки "[", "]", and ", ".

0 голосов
/ 08 декабря 2011
    String s = "";
    for(Character i : arrayListChar)
           s += i;

РЕДАКТИРОВАТЬ - как уже указывалось, вы должны использовать такой код, только если число объединяемых строк невелико.

0 голосов
/ 08 декабря 2011

Переопределите метод toString ArrayList или, что лучше, расширите класс ArrayList, чтобы вы могли использовать старый ArrayList toString () где-то еще в коде

0 голосов
/ 08 декабря 2011

Вы можете переопределить его toString метод и реализовать в нем форматирование String.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...