意图:从图像中获取电子邮件和电话号码。
使用以下命令:https://v4all123.blogspot.com/2018/03/simple-example-of-ocrreader-in-android.html我能够从Image中获取String。
剩下的是从字符串中分离出的电子邮件和电话号码。
基于所选名片,字符串将为动态。
示例:凯文·雷诺兹 连续性 帕西 上。合伙。性能。 631.925.5523 800.644.5268 631.757.0021 kevinr @@ connollymusic.com vw.connollymusic.com 康诺利音乐公司|弗农谷路8号|纽约州东诺斯波特11731
使用@Sajith ans时,无法验证string。根据纠正错误的逻辑,但我无法通过验证方法。
代码:
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();
}
答案 0 :(得分:1)
首先将您的字符串按空格分割,然后将其存储在数组中。
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;
}
}