如何用java检验电子邮箱格式的合法性?要用到String的方法来判断
展开全部
自己写逻辑验证的方式可以做到。我写了下面的:
public static boolean validateEmail(String email) {
boolean flag = false;
int pos = email.indexOf("@");
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
String[] strings = email.split("@");
if (strings.length != 2) {// 如果邮箱不是xxx@xxx格式
return false;
}
CharSequence cs = strings[0];
for (int i = 0; i < cs.length(); i++) {
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
pos = strings[1].indexOf(".");// 如果@后面没有.,则是错误的邮箱。
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
strings = strings[1].split(".");
for (int j = 0; j < strings.length; j++) {
cs = strings[j];
if (cs.length() == 0) {
return false;
}
for (int i = 0; i < cs.length(); i++) {//如果保护不规则的字符,表示错误
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
}
return true;
}
这个效率也不会差很多,不过我推荐matches方法,经过测试的,matches匹配方式运行10000次的时间比上面的时间少了20毫秒。
public static boolean validateEmail(String email) {
boolean flag = false;
int pos = email.indexOf("@");
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
String[] strings = email.split("@");
if (strings.length != 2) {// 如果邮箱不是xxx@xxx格式
return false;
}
CharSequence cs = strings[0];
for (int i = 0; i < cs.length(); i++) {
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
pos = strings[1].indexOf(".");// 如果@后面没有.,则是错误的邮箱。
if (pos == -1 || pos == 0 || pos == email.length() - 1) {
return false;
}
strings = strings[1].split(".");
for (int j = 0; j < strings.length; j++) {
cs = strings[j];
if (cs.length() == 0) {
return false;
}
for (int i = 0; i < cs.length(); i++) {//如果保护不规则的字符,表示错误
char c = cs.charAt(i);
if (!Character.isLetter(c) && !Character.isDigit(c)) {
return false;
}
}
}
return true;
}
这个效率也不会差很多,不过我推荐matches方法,经过测试的,matches匹配方式运行10000次的时间比上面的时间少了20毫秒。
展开全部
//1 验证邮箱是否合法
//1 必须有@和.
//2 @必须在.之前
//请输入邮箱:
//dsafd@126.com
import java.util.Scanner;//导入包
public class Home1 {
public static void main(String[] ages) {
Scanner input = new Scanner(System.in);
System.out.println("请输入邮箱:");//创建对象
String in = input.next();
if (in.contains("@") && in.contains(".") && in.indexOf("@")<in.lastIndexOf(".")) {
//判断in录入的值是否包含@和. 判断in@和.的位置长度
System.out.println("输入成功!");
}else {
System.out.println("请输入正确值!");
}
}
}
//1 必须有@和.
//2 @必须在.之前
//请输入邮箱:
//dsafd@126.com
import java.util.Scanner;//导入包
public class Home1 {
public static void main(String[] ages) {
Scanner input = new Scanner(System.in);
System.out.println("请输入邮箱:");//创建对象
String in = input.next();
if (in.contains("@") && in.contains(".") && in.indexOf("@")<in.lastIndexOf(".")) {
//判断in录入的值是否包含@和. 判断in@和.的位置长度
System.out.println("输入成功!");
}else {
System.out.println("请输入正确值!");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String email = "";
email.matches( "\\w+@\\w+\\.(com\\.cn)|\\w+@\\w+\\.(com|cn)"
)
返回boolean
email.matches( "\\w+@\\w+\\.(com\\.cn)|\\w+@\\w+\\.(com|cn)"
)
返回boolean
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-11-04
展开全部
啊打扫打扫
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询