Невозможно добавить символы в ArrayList <Character>?

У меня проблемы с добавлением символов в ArrayList <Character> на данный момент у меня есть:

ArrayList<Character> chars = new ArrayList<Character>();
String s = "abcd";
    for(int i = 0; i<s.length()-1; i++) {
        chars.add(i, s.charAt(i));  
    }

но, похоже, возникла проблема с добавлением символа в список. Кто-нибудь может помочь?

chars.add(s.charAt(i)); 

не работает для меня, либо он продолжает говорить, что char не применим для ArrayList

chars.add (s.charAt (i));

Ctznkane525 09.04.2018 00:53

Пожалуйста, вставьте весь код, чтобы мы могли видеть вашу переменную s.

Raymo111 09.04.2018 00:53

Какой тип s?

leonardkraemer 09.04.2018 01:16

Вы случайно не написали свой собственный класс Character в том же пакете?

VGR 09.04.2018 01:19

@VGR Нет, я не написал, я написал основной метод, вот и все

desiigner 09.04.2018 01:41

@desiigner У меня отлично работает, какую IDE вы используете?

MCMastery 09.04.2018 07:20
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
6
57
3

Ответы 3

Вот способ сделать это на Java 8, который, вероятно, чище:

String s = "a";
List<Character> c = 
        s.chars()
        .mapToObj(x->Character.valueOf((char) x))
        .collect(Collectors.toList());

Это не чище.

VGR 09.04.2018 01:14

Попробуйте это, у вас должно быть хорошо.

Код:

ArrayList<Character> chars = new ArrayList<Character>();
   s = "abcd";
        for(int i = 0; i<s.length(); i++) {
            chars.add(s.charAt(i));  
        }

Это не скомпилируется. Строка не имеет общедоступного поля length, только метод length().

VGR 09.04.2018 01:16

Кроме того, оригинал все равно работает ... в вопросе отсутствует информация

MCMastery 09.04.2018 07:21

Если вы просто хотите преобразовать свою строку в список массивов символов, попробуйте следующее:

String s = "abc";
char[] c = s.toCharArray();
Arraylist<Character> chars = Arrays.asList(c);

Или вы можете сделать это в одной строке, если хотите:

Arraylist<Character> chars = Arrays.asList("abc".toCharArray());

По сути, Arrays.asList() вернет список, который поддерживает тот же порядок ваших массивов. Поэтому, когда вы конвертируете свою строку в массив символов и превращаете ее в список с помощью Arrays.asList, это то же самое, что и chars.add(i, s.charAt(i));

Другие вопросы по теме