关于JAVA中indexof的问题
校验邮箱是否符合规则,最好还是用正则校验,百度搜一下就有
如果一定要用indexOf的话,
if(email.indexOf('@')0 email.indexOf('.')email.indexOf('@'))
这样写是满足你题目中的要求
怎么判断邮箱地址(if语句判断)
String email = "zjkal-007@163.com"; in atIndex = email.indexOf('@'); int pointIndex = email.lastIndexOf('.'); if( atIndex != -1 atIndex != 0 atIndex != email.length -1 pointIndex atIndex){ System.out.print(email + "是邮箱格式"); } 手写的,有错请见谅
如何用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毫秒。
} } } return true; }这个效率也不会差很多,不过我推荐matches方法,经过测试的,matches匹配方式运行10000次的时间比上面的时间
x != email.length -1 pointIndex atIndex){ System.out.print(email + "是邮箱格式"); } 手写的,有错请见谅如何用java检验电子邮箱格式的合法性?要用到String的方法来判断自己写逻辑验证的方式可以做到。我写了下面的:pu
em.out.print(email + "是邮箱格式"); } 手写的,有错请见谅如何用java检验电子邮箱格式的合法性?要用到String的方法来判断自己写逻辑验证的方式可以做到。我写了下面的:public static bo
os == -1 || pos == 0 || pos == email.length() - 1) { return false; } strings = strings[1].split("."); for (int j = 0