使用案例回顾类库相关知识(中) | 带你学《Java语言高级特性》之四十四-阿里云开发者社区

开发者社区> Java开发者> 正文

使用案例回顾类库相关知识(中) | 带你学《Java语言高级特性》之四十四

简介: 回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下正则表达式的相关内容吧。

上一篇:使用案例回顾类库相关知识(上) | 带你学《Java语言高级特性》之四十三
回顾之前学习的类库相关知识,我们已经对其基本概念与简单使用有了一个较为全面的了解,现在让我们一起来结合具体的一些案例巩固一下正则表达式的相关内容吧。

【本节目标】
通过阅读本节内容,你将结合相关案例场景进行功能实现,复习正则表达式,使用Matcher类和Pattern类,实现电子邮箱、IP地址的识别和HTML文件的解析,进一步理解与掌握其使用方法。

Email验证

类库案例分析四

输入一个Email地址,然后使用正则表达式验证Email地址格式是否正确。

对于此时的输入可以通过命令参数实现数据的输入,如果要想进行验证,最好的做法是设置一个单独的验证处理类。

public class JavaAPIDemo {
    public static void main(String[] args){
        if (args.length != 1) {   //输入有一个参数
           System.out.println("程序执行错误,没有输入初始化参数,正确格式为:java     JavaAPIDemo EMAIL地址") ;
           System.exit(1) ;   //系统退出
       }
        String email = args[0] ;    //获取初始化参数
        if (Validator.isEmail(email)) {
            System.out.println("输入的email地址正确!") ;
         }else{
            System.out.println("输入的email地址错误!") ;
         }
    }
} 
class Validator {    //定义一个专门的验证程序类
    private Validator() {}
    public static boolean isEmail(String email) {
        if (email == null || "".equals(email)) {     //数据为空
            return false ;
        }
        String regex = "\\w+@\\w+\\.\\w+" ;
        return email.matches(regex) ;
    }
}

如果以后要有更多的验证,只需要在Validator类之中扩展方法即可。

IP验证

类库案例分析五

编写正则表达式,判断给定的是否是一个合法的IP地址。
IP地址的组成就是数字,对于数字的组成有一个基础的要求,第一位的内容只能是无、1、2,后面的内容可以0-9、第三位的内容是0-9。

public class JavaApiDemo {
    public static void main(String[] args) throws Exception {
        String str="192.168.1.2";
        System.out.println(Validator.validateIP(str));
    }
}
class Validator {
    public static boolean validateIP(String ip) {
        if(ip == null || "".equals(ip)) {
            return false;
        }
        String regex = "([12]?[0-9]?[0-9]\\.){3}([12]?[0-9]?[0-9])";
        if(ip.matches(regex)) {  // 验证通过,还需要对IP地址进行拆分处理
            String result [] = ip.split("\\.");  // 拆分数据
            for (int i = 0; i < result.length; i ++) {
                int temp = Integer.parseInt(result[i]);
                if(temp > 255) {
                    return false;
                }
            }
        } else {
            return false;
        }
        return true;
    }
}

运行结果:

true

HTML拆分

类库案例分析六

给定下面的Html代码:

<font  face="Arial,Serif"  size="+2"  color="red">

要对内容进行拆分,拆分之后的结果是:

faceArial,Serif
size+2
colorred

对于测试的操作最简单的做法是分组处理

import  java.util.regex.Matcher;
import  java.util.regex.Pattern;

public  class  JavaApiDemo  {
    public  static  void  main(String[]  args)  throws  Exception  {
        String  str  =  "<font  face=\"Arial,Serif\"  size=\"+2\"  color=\"red\">";
        String  regex  =  "\\w+=\"[a-zA-Z0-9,\\+]+\"";
        Matcher  matcher  =  Pattern.compile(regex).matcher(str);
        while(matcher.find())  {
             String  temp  =  matcher.group(0);
             String  result  []  =  temp.split("=");
             System.out.println(result[0]  +  "\t"  +  result[1].replaceAll("\"",  ""));
        }
    }
}

运行结果:

face Arial,Serif
size +2
color red

这是一个很常见的HTML解析流程。

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:使用案例回顾类库相关知识(下) | 带你学《Java语言高级特性》之四十五
更多Java面向对象编程文章查看此处

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

Java开发者成长课堂

官方博客
官网链接