Как отделить электронную почту и телефон от строки - PullRequest
0 голосов
/ 07 июня 2019

Намерение: получить электронную почту и номер телефона от изображения.

используя следующее: https://v4all123.blogspot.com/2018/03/simple-example-of-ocrreader-in-android.html Мне удалось получить строку из изображения.

То, что осталось, - это отдельная электронная почта и номер телефона от полученной строки.

Строка будет динамической базой для выбранной визитной карточки.

пример: Кевин Рейнольдс CONNOLIY Пасси на. Партнерство. Спектакль. 631.925.5523 800.644.5268 631.757.0021 kevinr @@ connollymusic.com vw.connollymusic.com Музыкальная компания Коннолли | 8 Vernon Valley Rd | Восток Нортпорт, Нью-Йорк 11731

При использовании @Sajith ans, не удалось проверить строку. Согласно логике, которая корректирует ответ, но я не могу пройти метод проверки.

код:

Log.d("DataString",":"+textView.getText().toString());
                String DataString = textView.getText().toString();

                String[] splited = DataString.split("\\s+");


                for(int i =0 ; i < splited.length; i++) {
                    Log.d("splited",":"+splited[i]);

                    if(isValidMail(splited[i])){
                        Log.d("emailvalid","email valid condition ");
                        emailList.add(splited[i]);

                    }
                }

При реализации приведенного выше кода isValidaMail содержит следующее:

private boolean isValidMail(String email) {
        boolean check;
        Pattern p;
        Matcher m;

        String EMAIL_STRING = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
                + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

        p = Pattern.compile(EMAIL_STRING);

        m = p.matcher(email);
        check = m.matches();

        if(!check) {

        }
        return check;
    }

Я тоже пробовал:

private boolean isValidMail(String email) {
        return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
    } 

1 Ответ

1 голос
/ 07 июня 2019

Прежде всего разделите вашу строку по пробелам и сохраните их в массиве.

str = "Hello I'm your String";
String[] splited = str.split("\\s+");

После этого выполните цикл по массиву, чтобы проверить, соответствует ли текущая строка формату, который представляет адрес электронной почты и номер телефона.,Используйте регулярные выражения для форматов электронной почты и телефонных номеров.

РЕДАКТИРОВАТЬ

используйте проверку электронной почты, как показано ниже

String emailPattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+";

public static   boolean  ValidateEmail(String email){

    if (email.matches(emailPattern)){
        return true;
    }else{
        return false;
    }
}
...