Как преобразовать ArrayList
в ] Строка
в Java?
Метод toString
возвращает его как [a, b, c]
строку - я хочу избавиться от скобок и сохранить ее как abc
.
Вы можете перебрать список и создать строку.
String getStringRepresentation(ArrayList<Character> list)
{
StringBuilder builder = new StringBuilder(list.size());
for(Character ch: list)
{
builder.append(ch);
}
return builder.toString();
}
Помимо этого, toString()
возвращает читаемый человеком формат содержимого ArrayList. Не стоит тратить время на отфильтровывание ненужных символов из него. Завтра его реализация может измениться, и вам придется переписать свой фильтрующий код.
Предположим, у вас есть следующий список:
final ArrayList<Character> charsList = new ArrayList<Character>();
charsList.add('h');
charsList.add('e');
charsList.add('l');
charsList.add('l');
charsList.add('o');
Это даст hello
(я использую org.apache.commons.lang.ArrayUtils
вспомогательный класс):
final Character[] charactersArray =
charsList.toArray(new Character[charsList.size()]);
final char[] charsArray = ArrayUtils.toPrimitive(charactersArray);
System.out.println(String.valueOf(charsArray));
Используя join
класса Joiner
:
// create character list and initialize
List<Character> arr = Arrays.asList('a', 'b', 'c');
String str = Joiner.on("").join(arr);
System.out.println(str);
Используйте toString
, затем удалите , and spaces
import com.google.common.base.Joiner;
....
<Character> arr = Arrays.asList('h', 'e', 'l', 'l', 'o');
// remove [] and spaces
String str = arr.toString()
.substring(1, 3 * str.size() - 1) //3 bcs of commas ,
.replaceAll(", ", "");
System.out.println(str);
Или с помощью потоков:
import java.util.stream.Collectors;
...
// using collect and joining() method
String str = arr.stream().map(String::valueOf).collect(Collectors.joining());