Проблема: метод имеет один параметр целое число. Разбейте целое число на последовательность отдельных цифр в обратном порядке. Результатом будет массив, содержащий отдельные числа в обратном порядке.
Тестер: digitExtractor(16384) → {4, 8, 3, 6, 1}
DigitExtractor(123) → {3, 2, 1}
DigitExtractor(23) → {3, 2}
DigitExtractor(-123) → {-1, 2, 3} (у меня проблема с этим)
public int[] digitExtractor(int number)
{
int[] arr;
ArrayList<Integer> digits = new ArrayList<Integer>();
if(number == 0)
{
digits.add(number);
}
if(number < 0)
{
number *= -1;
}
while (number != 0)
{
digits.add(number % 10);
number /= 10;
}
arr = new int[digits.size()];
for(int i = 0; i < digits.size(); i++)
{
arr[i] = digits.get(i);
}
return arr;
}
Мой код работает, за исключением отрицательного числа. Я не знаю, как это исправить. Какие-нибудь советы?
2 ответа
Прочитайте мой комментарий и попробуйте это:
public int[] digitExtractor(int number)
{
int[] arr;
boolean flag=false;
ArrayList<Integer> digits = new ArrayList<Integer>();
if(number == 0)
{
digits.add(number);
}
if(number < 0)
{
number *= -1;
flag=true;
}
while (number != 0)
{
digits.add(number % 10);
number /= 10;
}
arr = new int[digits.size()];
for(int i = 0; i < digits.size(); i++)
{
arr[i] = digits.get(i);
}
if(flag){
arr[digits.size()-1]*=-1;
}
return arr;
}
Другой способ сделать это:
public static int[] digitExtractor(int number) {
boolean negative = number < 0;
String myNumber = String.valueOf(number);
myNumber = new StringBuilder(myNumber).reverse().toString();
int size = negative ? myNumber.length() - 1 : myNumber.length();
int[] arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = Character.getNumericValue(myNumber.charAt(i));
}
if (negative) {
arr[size - 1] = 0 - arr[size - 1];
}
return arr;
}
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.