@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;
    }

}


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

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

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

Похожие вопросы