В настоящее время я выполняю задание для колледжа, где я не могу использовать определенные выражения, такие как приведенные выше, и, просмотрев таблицу ASCII, мне удалось это сделать.Это гораздо более сложный код, но он может помочь другим, которые ограничены, как я.
Первое, что нужно сделать, - это получить ввод, в данном случае, строку цифр;Я назову это String number
, и в этом случае я приведу пример с использованием числа 12, поэтому String number = "12";
Еще одним ограничением было то, что я не мог использовать повторяющиеся циклы, поэтомуцикл for
(который был бы идеален) также нельзя использовать.Это немного ограничивает нас, но опять же, это цель.Поскольку мне потребовались только две цифры (последние две цифры), простое решение charAt
решило это:
// Obtaining the integer values of the char 1 and 2 in ASCII
int semilastdigitASCII = number.charAt(number.length()-2);
int lastdigitASCII = number.charAt(number.length()-1);
Имея коды, нам просто нужно взглянуть на таблицу и внести необходимые корректировки:
double semilastdigit = semilastdigitASCII - 48; //A quick look, and -48 is the key
double lastdigit = lastdigitASCII - 48;
Теперь, почему двойной?Ну, из-за действительно "странного" шага.В настоящее время у нас есть два двойных, 1 и 2, но нам нужно превратить его в 12, мы не можем выполнить математическую операцию.
Мы делим последнее (lastdigit) на 10 вмода 2/10 = 0.2
(отсюда и почему двойная) вот так:
lastdigit = lastdigit/10;
Это просто игра с числами.Мы превращали последнюю цифру в десятичную.Но теперь посмотрим, что происходит:
double jointdigits = semilastdigit + lastdigit; // 1.0 + 0.2 = 1.2
Не вдаваясь в математику, мы просто выделяем единицы из цифр числа.Видите ли, поскольку мы учитываем только 0-9, деление на кратное 10 похоже на создание «ящика», в котором вы храните его (вспомните, когда учитель первого класса объяснил вам, что такое единица и сотня).Итак:
int finalnumber = (int) (jointdigits*10); // Be sure to use parentheses "()"
И вот, пожалуйста.Вы превратили строку цифр (в данном случае две цифры) в целое число, состоящее из этих двух цифр, учитывая следующие ограничения:
- Нет повторяющихся циклов
- Нет "Магия"Такие выражения, как parseInt