如何从字符串中分离电子邮件和 Phone NO

How to Separate Email and Phone NO from String

意图:获取电子邮件和Phone 否来自图像。

使用以下内容:https://v4all123.blogspot.com/2018/03/simple-example-of-ocrreader-in-android.html我能够从图像中获取字符串。

剩下的是单独的电子邮件和 Phone 否来自得到的字符串。

字符串将根据所选名片动态显示。

示例:凯文·雷诺兹 康诺利 帕西 在。合伙。表现。 631.925.5523 800.644.5268 631.757.0021 凯文@@connollymusic.com 大众connollymusic.com 康诺利音乐公司 |弗农谷路 8 号 |纽约州东诺斯波特 11731

使用@Sajith ans 时,无法验证字符串。根据逻辑正确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();
    } 

首先将您的字符串拆分为 space 并将它们存储在一个数组中。

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