Есть ли простой способ преобразования ArrayList, который содержит только символы, в строку? Скажем, у нас есть
ArrayList<Character> arrayListChar = new ArrayList<Character>(); arrayListChar.add(a); arrayListChar.add(b); arrayListChar.add(c);
Итак, список массивов содержит a, b и c. В идеале я хотел бы превратить это в строковый "abc".
Вы можете использовать Класс Apache Common Lang StringUtils.Он имеет функцию join(), как в PHP.
join()
Тогда код:
StringUtils.join(arrayListChar, "")
будет генерировать:
abc
Iterator<Character> it = arrayListChar.iterator(); StringBuilder sb = new StringBuilder(); while(it.hasNext()) { sb.append(it.next()); } System.out.println(sb.toString());
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);
Использование регулярного выражения magic:
String result = list.toString().replaceAll(", |\\[|\\]", "");
Получите строковое представление списка, равное
[a, b, c]
, а затем удалите строки "[", "]", and ", ".
"[", "]", and ", "
String s = ""; for(Character i : arrayListChar) s += i;
РЕДАКТИРОВАТЬ - как уже указывалось, вы должны использовать такой код, только если число объединяемых строк невелико.
Переопределите метод toString ArrayList или, что лучше, расширите класс ArrayList, чтобы вы могли использовать старый ArrayList toString () где-то еще в коде
Вы можете переопределить его toString метод и реализовать в нем форматирование String.
toString
String