Как преобразовать ArrayList строк в целые числа без каких-либо библиотечных методов?

Я хочу преобразовать ArrayList строк в целые числа в Java.

Моя попытка:

ArrayList number = new ArrayList(Arrays.asList("45","9","77"))
int res = 0;
System.out.println(res);
for (int i = 0; i < number.size(); i++) {
    res = res * 10 + number.charAt(i) - '0';
}           

что вы имеете в виду под «целым числом»?

Stultuske 08.04.2019 07:53

в int как 45,9,77

G.Brown 08.04.2019 07:54

45,9,77 не является целым числом

Stultuske 08.04.2019 07:54

Вы имеете в виду ArrayList<String> в ArrayList<Integer>?

Amadan 08.04.2019 07:54
list.stream().map(Integer::valueOf).collect(toList())
Andronicus 08.04.2019 07:55

Возможный дубликат Преобразование List<String> в List<Integer> напрямую

Naghaveer R 08.04.2019 07:55

List<String> stringNumberList = new ArrayList<String>(Arrays.asList("45","9","77")) int res = 0; for (String s: stringNumberList) { res = Integer.parseInt(s); System.out.println(разрешение); } }

Alde 08.04.2019 08:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
7
7
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы что-то здесь упускаете. У вас есть List из String, и вы должны перебирать символы каждого из этих String отдельно, чтобы преобразовать его в int. Это означает, что вам нужно два вложенных цикла.

Хотя есть гораздо более простые способы сделать это (с помощью Integer.parseInt()), вот реализация, основанная на логике исходного кода:

List<String> numbers = Arrays.asList("45","9","77");
List<Integer> output = new ArrayList<>();
for (String number : numbers) {
    int res = 0;
    for (int i = 0; i < number.length(); i++) {
        res = res * 10 + (number.charAt(i) - '0');
    }  
    output.add(res);         
}
System.out.println (output);

Выход:

[45, 9, 77]

не совсем ясно, имеет ли он в виду одно целое число или список целых чисел/целых чисел. с одним Stream -> map (r -> return Integer.parseInt(r)) он может делать то, что хочет

Stultuske 08.04.2019 07:56

@Stultuske Я понял, что каждая строка должна быть преобразована в int отдельно, и комментарий ОП подтверждает это.

Eran 08.04.2019 08:01

так зачем нужен вложенный цикл? использование потока для однократной итерации и возврата целочисленного значения, которое впоследствии будет собрано в список, должно сделать это

Stultuske 08.04.2019 08:03

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