好的,我正在尝试创建一个简单的电子邮件验证应用程序。
我被困在一个特定的位,我需要在1个字符串中找到2个字符串。我想知道电子邮件中是否有.com或.co.uk。到目前为止,我只是为了检查.com。我到处寻找,无法找到解决方案。我尝试过做.indexof(dotCom && dotUK)
但是没有用。
所以只需要它,所以说“.com”或“.co.uk”
String dotCom = ".com";
String dotUK = ".co.uk";
rest = user_email.indexOf( dotCom);
if (rest== -1){
System.out.println("Invalid email address. Must contain .com or .co.uk");
}else{
System.out.println("Valid email address");
}
答案 0 :(得分:2)
if(mail.contains(".com") || mail.contains(".co.uk")) {
//is valid
}
如果您不关心其实际索引,请不要使用indexOf
来检查其他String中子串的存在。
如果您只是想知道某些String是否包含其他字符串,请使用contains
方法 - 它更直接
如建议的那样,更好的是:
if(mail.endsWith(".com") || mail.endsWith(".co.uk")) {
//is valid
}
答案 1 :(得分:1)
您可以使用正则表达式或这样的后缀集合:
private static boolean matches(final String mail,
final String ... suffixes)
{
String match;
match = null;
for(final String suffix : suffixes)
{
if(mail.endsWith(suffix))
{
match = suffix;
break;
}
}
// or return (match); if you want to know the type.
return (match != null);
}
答案 2 :(得分:0)
好吧,为了使你的片段成为工作,那就是
if (user_email.indexOf( dotCom) == -1 && user_email.indexOf( dotUK) == -1){
System.out.println("Invalid email address. Must contain .com or .co.uk");
}
else {
System.out.println("Valid email address");
}
另一方面,您可以尝试Regular expressions以获得更灵活的解决方案。 希望它有所帮助