Обработка номера телефона может быть разнообразной и зависит от требуемой задачи: форматирование, валидация, скрытие части информации (как в вашем вопросе) и т.д.
Исходя из вашей задачи — преобразовать номер телефона из формата без пробелов и дополнительных символов в более читаемый формат с заменой некоторых цифр звездочками — можно использовать следующие способы:
1. **Регулярные выражения**:
Регулярные выражения позволяют описывать шаблоны для поиска и замены строк. В вашем случае, можно использовать регулярное выражение для переформатирования и замены цифр.
Вот пример на Python:
```python
import re
# Функция для замены номера
def format_phone_number(number):
# Подгоняем номер под новый формат и заменяем цифры на звездочки
formatted_number = re.sub(r"^7(\d{3})(\d{3})(\d{2})(\d{2})$", r"+7 (\1) ***-**-\4", number)
return formatted_number
# Исходный номер
phone_number = "79000000000"
# Форматированный номер
formatted_phone_number = format_phone_number(phone_number)
print(formatted_phone_number) # Вывод: +7 (900) ***-**-00
```
2. **Строковая манипуляция**:
Если использование регулярных выражений кажется избыточным, то можно воспользоваться обычной строковой манипуляцией — извлеченем подстрок и их конкатенацией.
```python
phone_number = "79000000000"
# Проверяем длину номера
if len(phone_number) == 11 and phone_number.isdigit():
formatted_number = "+7 ({}) ***-**-{}".format(phone_number[1:4], phone_number[9:])
else:
formatted_number = None # или обработка неверного формата
print(formatted_number) # Выводит: +7 (900) ***-**-00
```
Эти два способа — наиболее распространенные для подобного рода задачи, но могут быть и другие в зависимости от языка программирования и специфики задачи. Обратите внимание, что номер телефона может иметь разные форматы в зависимости от страны и региона, поэтому для универсальных решений часто используются специализированные библиотеки, такие как libphonenumber.