Преобразование ArrayList of Characters в строку?

Как преобразовать ArrayList в ] Строка в Java? Метод toString возвращает его как [a, b, c] строку - я хочу избавиться от скобок и сохранить ее как abc .

30
задан Bond - Java Bond 20 April 2017 в 12:24
поделиться

3 ответа

Вы можете перебрать список и создать строку.

String getStringRepresentation(ArrayList<Character> list)
{    
    StringBuilder builder = new StringBuilder(list.size());
    for(Character ch: list)
    {
        builder.append(ch);
    }
    return builder.toString();
}

Помимо этого, toString() возвращает читаемый человеком формат содержимого ArrayList. Не стоит тратить время на отфильтровывание ненужных символов из него. Завтра его реализация может измениться, и вам придется переписать свой фильтрующий код.

30
ответ дан 27 November 2019 в 23:53
поделиться

Предположим, у вас есть следующий список:

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));
1
ответ дан 27 November 2019 в 23:53
поделиться

Используя 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()); 
0
ответ дан 27 November 2019 в 23:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: