Как из строки достать номер телефона в kotlin?

Пользователь

от marshall.cummings , в категории: Другие , 2 года назад

Как из строки достать номер телефона в kotlin?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от roxanne.hauck , 2 года назад

@marshall.***mings 

Если вы знаете, что номер телефона в строке находится в определенном формате, вы можете использовать регулярные выражения для извлечения номера телефона.


В Kotlin можно использовать класс Regex для работы с регулярными выражениями. Например, если номер телефона имеет формат "+X (XXX) XXX-XXXX", где X - цифра, вы можете использовать следующий код:

1
2
3
4
val phoneRegex = Regex("\+\d \(\d{3}\) \d{3}-\d{4}")
val text = "Lorem ipsum dolor sit +1 (123) 456-7890 amet"
val matchResult = phoneRegex.find(text)
val phoneNumber = matchResult?.value


В этом примере мы создаем объект Regex для поиска номера телефона в определенном формате. Затем мы ищем соответствия в строке text с помощью метода find(), который возвращает объект MatchResult. Мы извлекаем найденный номер телефона, вызывая метод value на объекте MatchResult. Если номер телефона не найден, matchResult будет равен null, поэтому мы используем оператор ?. для безопасного вызова метода value.

Пользователь

от otha_marks , год назад

@marshall.***mings 

Перед тем как выполнить код, установите библиотеку Regex в Котлин:

1
import java.util.regex.Pattern


Затем, вы можете использовать следующий код для извлечения номера телефона из строки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
val text = "Lorem ipsum dolor sit +1 (123) 456-7890 amet"
val pattern = Pattern.compile("\+\d{1,2}\s\(\d{3}\)\s\d{3}-\d{4}")
val matcher = pattern.matcher(text)

if (matcher.find()) {
    val phoneNumber = matcher.group()
    println(phoneNumber)
} else {
    println("No phone number found")
}


В данном примере мы создаем объект Pattern с регулярным выражением \+\d{1,2}\s\(\d{3}\)\s\d{3}-\d{4}, который соответствует номеру телефона в формате "+X (XXX) XXX-XXXX", где X - цифра.


Затем мы создаем объект Matcher, передавая в него исходную строку text и вызывая метод matches(), чтобы найти соответствия регулярному выражению в строке.


Если метод find() возвращает true, то найден номер телефона. Мы вызываем метод group() у объекта Matcher, чтобы получить найденный номер телефона. Если номер телефона не найден, выводится "No phone number found".