@turdubekov
Студент

Как изменить содержимые ArrayList?

У меня есть лист с телефонными номерами, мне надо их привести в опредлеленный формат, но мой код не работает.
в чем можеть быть проблема?
public class DemoApplication {

    public static void main(String[] args) {

        SpringApplication.run(DemoApplication.class, args);

        List<String> number = new ArrayList<>();
        number.add("+996555691100");
        number.add("996555691100");
        number.add("0555691100");
        number.add("555691100");
        number.add("+79259243307");
        number.add("0079259243307");
        number.add("89259243307");
        number.add("+77077496188");
        number.add("0077077496188");
        number.add("87077496188");

                number.stream().map(s -> s = fix_phone(s)).collect(Collectors.toList());

    }

    public String fix_phone(String phone) {

        // Убрать все кроме цифр
        phone = phone.replaceAll("[^\\d.]", "");

        //Если номер  начинается с 0, то удалить 0
        if (phone.startsWith("0996")) phone = phone.replaceAll("^[0]", "");

        // Если номер (РФ) начинается с 00, то удалить: 00
        if (phone.startsWith("00")) phone = phone.replaceAll("^[0][0]", "");

        //Если номер (РФ) начинается с 7, то заменить на 8
        if (phone.startsWith("8")) phone = phone.replaceAll("^[8]", "7");

        // Если номер содержит только 9 цифр, дабавить код страны 996
        if (phone.matches("[\\d]{9}")) phone = "996" + phone;

        // Заменить 0 на 996
        if (phone.matches("0[\\d]{9}")) phone = phone.replaceAll("^[0]", "996");

        return phone;
    }

}


На выходе получается первоначальный лист без изминений, в чем может быть проблема?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
Jacen11
@Jacen11
а где у тебя вообще выход?
ну и ты хоть смотри что возвращают методы, они не по волшебству работают. Изучи стрим апи раз его юзаешь

ЗЫ условия и регулярки кривые, зачем ты делаешь проверку startsWith если регулярка сразу может заменить нули вначале на пустоту
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы