В решени используется parseInt. Может кто-то объяснить как правильно оно работает именно в это задаче, а то я не до конца понимаю. Задачу сам решил, но не использую parseInt , а просто все введенные цифры после первой заносил в массив новый (пусть будет называться array) и потом через цикл инициализировал массив multiArray , доставая по очереди цифры из массива array. Но вот работу решения JR не понимаю.
Maks Usatenko
26 уровень
Объясните пожалуйста.
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Павелстудент на стероидах в Java Syntax Pro beta
7 декабря 2020, 12:05
Если ты не использовал Integer.parseInt, то наверное использовал Scanner scanner.nextInt(). Для этой задачи между ними разница не принципиальная.
Если инициализацию сделал через цикл - хорошо, никто не запрещает. Можно было и без промежуточного цикла сделать тоже самое, сразу инициализируя соответствующую строку массиа.
+1
Eliezer
7 декабря 2020, 07:46
метод вытягивает из строки числовые символы и "перебивает" их в числа типа int, также учитывается число символов в строке. Работает он по схожему принципу, описанному ниже (пишу простым языком... местами слишком)) ):
пример, число в строке состоит из нескольких числовых символов от 0 до 9 (любое десятичное число), вот, например, "12". Вытягиваем символ '2', перебивает его в 2. (вытягиваем символ из строки строковым методом по индексу...) Например, чтобы перебить символ '2' в число 2 - можно посмотреть какими числами закодированы символы от 0 до 9 в таблице юникод, а затем из числового выражения в таблице любого числового символа вычитать числовое выражение в таблице символа '0'. Ноль вроде 48 в таблице, а 2 - 50. Разница 50 - 48 = 2. наше искомое выражение символа 2. (символы в таблице идут в ряд последовательно... используешь закономерность).
далее в нашем случае 2 обозначает единицы, тк число у нас "12", значит умножаем 2 на 1.
далее вытягиваем след число, у нас это 1... это уже десятки, значит умножаем на 10 и складываем с предыдущим... 1*10 + 2*1 = 12. Запускаешь цикл, реализуешь в нем описанный алгоритм, каждый шаг цикла умножаешь на степень числа 10, вытянутое и преобразованное подчисло. Степень начинается с нуля (нулевой разряд у десятичного числа).
+1
EkaterinaLvova
19 декабря 2020, 15:50
а если будет текст+число? Скажем "new12", сможет ли данный метод вынуть только число?
0
Eliezer
19 декабря 2020, 16:14
должно быть число, либо в десятичной форме, либо в другой.
Например, Integer.parseInt("10ab", 16) - здесь 10ab - шестнадцатеричное число, а 16 - основание системы, или, для десятичной можно просто - Integer.parseInt("1234567") или Integer.parseInt("1234567", 10) .
если будет "new12" - .parseInt() вызовет ошибку, такого числа нет.
+2
hidden #2322530
6 декабря 2020, 16:52
в гугле забанили уже?
+1