邮箱合法性的判断与indexOf()==-1的解释

该篇文章详细描述了一个Java程序,用于检查用户输入的邮箱地址是否符合规范,包括检查是否包含@符号,@符号前是否有字符,以及是否包含点号。
摘要由CSDN通过智能技术生成

判断邮箱格式输入的对错,简化为是否有“.”,@,@前后是否有字符。

需要用到字符串的遍历比对,字符串的抓取与赋值。

代码主体:

public class youpanduanyouxiangshifouhefa {
    //判断输入的邮箱是否合法
    public static void main(String[] args) {
        //抓取命令
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入你的email:");
        //定义变量"email"
        // 将抓取字符串赋给变量"email"
        String email = scanner.next();
        //判断输入字符串里有没有@符号
        //有@就进入这个if
        if (email.indexOf("@") != -1) {
            //定义字符串变量substring,将第一个字符到@长度的字符截取出来
            String substring = email.substring(0, email.indexOf("@"));
            //该if用来判断@前是否有字符
            //如果截取出来的字符串长度为零,说明字符串中什么都没有
            if (substring.length() == 0) {
                //输出
                System.out.println("非法email,@前必须有字符");
                //反之就是有字符
            } else {
                //再进一步判断@之后有没有字符
                //用字符串定义substring1,将@后的所有字符截取并赋值给substring1
                String substring1 = email.substring(email.indexOf("@") + 1, email.length());
                //如果substring1的长度为零就说明@后没有字符
                if (substring1.length() == 0) {
                    //输出
                    System.out.println("非法email,@后必须有字符");
                    //反之就是有字符
                    //现在判断email中是否有“.”
                } else {
                    //引入boolean
                    boolean is = false;
                    //用for循环查找email中是否有.
                    for (int i = 0; i < substring1.length(); i++) {
                        //每个字符拿出来看是否等于”.“
                        if (substring1.charAt(i) == '.') {
                            is = true;
                        }
                    }
                    //如果变量是true说明含有“.”
                    if (is) {
                        //输出
                        System.out.println("合法email");
                        //反之就没有.
                    } else {
                        //输出
                        System.out.println("非法email,没有.");
                    }

                }

            }
            //反之就没有@
        } else {
            //输出
            System.out.println("没有@,不合法");
        }
    }
}

 注意:

indexOf()==-1中的indexOf()代表一个字符串是否包含在另一个字符串中,==-1表示没找到,同理

!=-1表示找到了。

输出结果:

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值