使用案例回顾类库相关知识(中) | 带你学《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面向对象编程文章查看此处

相关文章
|
3月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
162 4
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
330 18
|
4月前
|
存储 Java Apache
Java语言操作INI配置文件策略
以上步骤展示了基本策略,在实际项目中可能需要根据具体需求进行调整优化。例如,在多线程环境中操作同一份配置时需要考虑线程安全问题;大型项目可能还需考虑性能问题等等。
226 15
|
5月前
|
算法 Java
Java语言实现链表反转的方法
这种反转方法不需要使用额外的存储空间,因此空间复杂度为,它只需要遍历一次链表,所以时间复杂度为,其中为链表的长度。这使得这种反转链表的方法既高效又实用。
503 0
|
5月前
|
JSON Java API
【干货满满】分享拼多多API接口到手价,用Java语言实现
本方案基于 Java 实现调用拼多多开放平台商品详情 API,通过联盟接口获取商品到手价(含拼团折扣与优惠券),包含签名生成、HTTP 请求及响应解析逻辑,适用于电商比价、导购系统集成。
|
5月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
5月前
|
JSON Java API
【干货满满】分享淘宝API接口到手价,用Java语言实现
本文介绍了如何使用 Java 调用淘宝开放平台 API 获取商品到手价,涵盖依赖配置、签名生成、HTTP 请求与响应解析等核心实现步骤。
|
6月前
|
安全 Java API
Java 集合高级应用与实战技巧之高效运用方法及实战案例解析
本课程深入讲解Java集合的高级应用与实战技巧,涵盖Stream API、并行处理、Optional类、现代化Map操作、不可变集合、异步处理及高级排序等核心内容,结合丰富示例,助你掌握Java集合的高效运用,提升代码质量与开发效率。
300 0
|
6月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
539 0
|
6月前
|
JavaScript Java Go
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
Go、Node.js、Python、PHP、Java五种语言的直播推流RTMP协议技术实施方案和思路-优雅草卓伊凡
498 0