0

好的,所以我正在尝试创建一个简单的电子邮件验证应用程序。

我被困在一个特定的位置,我需要简单地在 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");
     }
4

3 回答 3

2
if(mail.contains(".com") || mail.contains(".co.uk")) {
    //is valid
}

indexOf如果您不关心它的实际索引,请不要用于检查其他字符串中子字符串的存在。

如果您只想知道某个字符串是否包含其他字符串,请使用contains方法 - 它更直接

正如建议的那样,更好的是:

if(mail.endsWith(".com") || mail.endsWith(".co.uk")) {
    //is valid
}
于 2013-03-14T23:07:37.480 回答
1

You could use a regex, or a collection of suffixes like this:

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);
}
于 2013-03-14T23:24:44.557 回答
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");
}

另一方面,您可以尝试正则表达式以获得更灵活的解决方案。希望能帮助到你

于 2013-03-14T23:20:29.270 回答