天天看点

2021-09-08 编程练习:正则年龄 解析url路径

目录

1.程序启动后,要求用户输入用户名用户名出现内容要求如下要求:

2.解析url路径,找规律

1.程序启动后,要求用户输入用户名用户名出现内容要求如下要求:

  3-15位,内容只能是数字,字母,下划线。不匹配则直接提示用户名有误。

  如果无误,则要求用户继续输入年龄,数字至少一位以上,不匹配则提示年龄有误。并且验证年龄在1-100岁之间(包含1和100),如果超出范围给出提示。

Scanner sc = new Scanner(System.in);
        System.out.print("请输入用户名:");
        String username = sc.next();
        if (username.matches("^[0-9a-zA-Z_]{3,15}$")){
            System.out.print("请输入用户年龄:");
            String userage = sc.next();
            if(userage.matches("[1-9][0-9]*")){
//如果
                if(userage.length()<3 || userage.equals("100")) {
                    System.out.println("用户名为:" + username + ",年龄:" + userage);
                }else{
                    System.out.println("年龄超出范围!!");
                }
            }else{
                System.out.println("年龄格式有误!!");
            }
        }
        else{
            System.out.println("用户名有误!!");
        }
           

运行结果:

2021-09-08 编程练习:正则年龄 解析url路径

   用户名4位,年龄<100,合格

2021-09-08 编程练习:正则年龄 解析url路径

     用户名4位,年龄=100,合格

2021-09-08 编程练习:正则年龄 解析url路径

    用户名2位,用户名有误

2021-09-08 编程练习:正则年龄 解析url路径

    用户名4位,年龄格式有误

2021-09-08 编程练习:正则年龄 解析url路径

    用户名4位,年龄>100,超出范围

2.解析url路径,找规律

(1)String path = "http://localhost:8088/myweb/reg?name=zhangsan";

        将上述字符串按照"?"拆分为两部分并输出

        ?左侧在控制台输出内容为:

        请求:http://localhost:8088/myweb/reg

        ?右侧在控制台输出内容为:

        参数:name=zhangsan

String path = "http://localhost:8088/myweb/reg?name=zhangsan";
        String str[] = path.split("[?]");
        String request = str[0];
        String parameter = str[1];
        System.out.println("请求:"+request);
        System.out.println("参数:"+parameter);
           

运行结果:

2021-09-08 编程练习:正则年龄 解析url路径

(2)path = "http://localhost:8088/myweb/reg?name=zhangsan&pwd=123456&nick=san&age=16";

        先拆分出请求部分与参数部分

        观察参数部分的格式,找出规律后再将每一个参数的名字和值得到并输出为:

        参数名:name,参数值:zhangsan

        参数名:pwd,参数值:123456

String path = "http://localhost:8088/myweb/reg?name=zhangsan&pwd=123456&nick=san&age=16";
        //根据?分割成两个数组,str[1]是?后面的
        String str[] = path.split("[?]");
        //定义二维数组接收再次分割的
        String parameter[][] = new String[str[1].split("[&]").length][2];
        //下标0是=左边的,下标1是=右边的
        for(int i=0;i<parameter.length;i++){
            parameter[i][0] = str[1].split("[&]")[i].split("[=]")[0];
            parameter[i][1] = str[1].split("[&]")[i].split("[=]")[1];

        }
        System.out.println(Arrays.deepToString(parameter));
           

运行结果:

2021-09-08 编程练习:正则年龄 解析url路径