Есть задание: дан массив с числами в диапазоне от 0 до 100. Необходимо написать функцию, которая будет менять первую и вторую цифру местами в двухзначных числах, при этом, функция должна игнорировать однозначные и трехзначные числа. Функцию необходимо реализовать с использованием класса ArrayList.
Пример: дан массив [10, 15, 11, 6, 3, 82, 100]
Должно получиться: [01, 51, 11, 6, 3, 28, 100]
И вот моя реализация:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(15);
numbers.add(11);
numbers.add(6);
numbers.add(3);
numbers.add(82);
numbers.add(100);
System.out.println("Исходный массив: " + numbers.toString());
ArrayList<String> result = processNumbers(numbers);
System.out.println("Измененный массив: " + result.toString());
}
public static ArrayList<String> processNumbers(ArrayList<Integer> numbers) {
ArrayList<String> result = new ArrayList<>();
for (int number : numbers) {
if (number >= 10 && number < 100) {
String numStr = String.valueOf(number);
String swapped = numStr.charAt(1) + "" + numStr.charAt(0);
result.add(swapped);
} else {
result.add(String.valueOf(number));
}
}
return result;
}
}
// обновление - код был выделен в функцию
Вопросы:
можно ли как-то проще выполнить это задание?
Какие тесты можно написать для программы?
Есть ли какие-то недочеты в моей реализации?