首页 > 其他分享 >第七周进度报告

第七周进度报告

时间:2024-08-17 19:04:24浏览次数:14  
标签:String 报告 System 爬取 Date 进度 println out 第七

爬虫

  • Pattern: 表示正则表达式
  • Matcher: 文本匹配器,作用按照正则表达式的规则去读取字符串,从头开始读取,在大串上去找符合匹配规则的子串
String s = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个版本是长期支持版本," + "下一个长期支持的版本是" +
                "Java17,相信未来不久Java17也会逐渐登上历史舞台.";

        //1.获取正则表达式的对象
        Pattern p = Pattern.compile("Java\\d{0,2}");

        //2.获取文本匹配器的对象  拿着m去读取s,找符合p规则的字串
        Matcher m = p.matcher(s);

        //3.利用循环读取
        while(m.find()){
            System.out.println(m.group());
        }

带条件爬取

 /*
        需求1: 爬取版本号为8,11,17的Java文本,但是只要Java,不显示版本号。
        需求2: 爬取版本号为8,11,17的Java文本。正确爬取结果为: Java8 Java11 Java17 Java17
        需求3: 爬取除了版本号为8,11,17的Java文本,
        **/

        String s = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,因为这两个版本是长期支持版本," + "下一个长期支持的版本是" +
                "Java17,相信未来不久Java17也会逐渐登上历史舞台.";

        //需求1:  ?理解为前面的数据java,=表示在java后面要跟随的数据,但是在获取之前,只获取前半部分
        String regex1 = "(?i)(java)(?=8|11|17)";
        //需求2:
        String regex2 = "(?i)(java)(?:8|11|17)";
        //需求3:
        String regex3 = "(?i)(java)(?!8|11|17)";

        //1.获取正则表达式的对象
        Pattern p = Pattern.compile(regex3);

        //2.获取文本匹配器的对象  拿着m去读取s,找符合p规则的字串
        Matcher m = p.matcher(s);

        //3.利用循环读取
        while(m.find()){
            System.out.println(m.group());
        }

贪婪爬取和非贪婪爬取

  • 贪婪爬取:在爬取数据的时候尽可能的多获取数据
  • 非贪婪爬取: 在爬取数据的时候尽可能地少获取数据
public static void main(String[] args) {
        String s = "klklklkkljxzcnxzncklxznkvabbbbbbbbbbbbbbbbbbbbxjvkj";
        //1.贪婪爬取
        String regex1 = "ab+";
        //2.非贪婪爬取
        String regex2 = "ab+?";
        Pattern p = Pattern.compile(regex2);
        Matcher m = p.matcher(s);

        while(m.find()){
            System.out.println(m.group());
        }
    }

正则表达式在字符串方法中的使用


 public static void main(String[] args) {
        String s = "你dskadhjksaj我dhsjadhjkls大帅哥dsaldjs666";

        String regex = "[\\w&&[^_]]+";

        //replaceAll
        System.out.println(s.replaceAll(regex,"乐"));

        //split
        String[] arr = s.split(regex);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

        //matches
        System.out.println(s);
        System.out.println(s.matches(regex));
    }

分组捕获和非分组捕获

分组规则

 public static void main(String[] args) {
        //分组捕获
        String s = "ads12d1sa";
        String regex = "(.).+\\1";
        System.out.println(s.matches(regex));

        String s2 = "abcds12d31sabc";
        String regex2 = "(.+).+\\1";
        System.out.println(s.matches(regex2));

        String s3 = "aaagf132h1fgaab";
        String regex3 = "((.)\\2)*.+\\1";
        System.out.println(s3.matches(regex3));

        //正则内部用\\,外部用组的内容用$
        String s4 = "我我我我我啦啦啦啦啦啦啦啦啦哈哈哈哈哈哈哈哈哈啊啊啊啊啊";
        System.out.println(s4.replaceAll("(.)\\1+","$1"));
    }

非捕获分组: 仅仅是吧数据括起来,不占用组号


常见API

Date

时间有关的知识点

public static void main(String[] args) {
        /*
          public Date(); // 创建Data对象,表示当前时间
          public Date(long data) //创建Data对象,表示指定时间

          public void setTime(long time) //设置/修改 (time)毫秒值
          public long getTime() //获取时间对象的毫秒值
        */

        Date d1 = new Date();
        System.out.println(d1);

        Date d2 = new Date(1000L);
        System.out.println(d2);

        long l = d2.getTime();
        System.out.println(l);
    }

public static void main(String[] args) {
//时间计算
Date d1 = new Date(0L);
long time = d1.getTime();
time += 1000L * 60 * 60 * 24 * 365; //获取一年后的时间
d1.setTime(time);
System.out.println(d1);

    //时间比较
    Random r = new Random();
    Date d2 = new Date(Math.abs(r.nextInt()));
    Date d3 = new Date(Math.abs(r.nextInt()));
    System.out.println("d2: " + d2.getTime());
    System.out.println("d3: " + d3.getTime());
    if(d2.getTime() > d3.getTime()){        //取出毫秒值进行比较
        System.out.println("d3在前");
    }
    else if(d2.getTime() < d3.getTime()){
        System.out.println("d2在前");
    }
    else {
        System.out.println("时间相等");
    }
}

标签:String,报告,System,爬取,Date,进度,println,out,第七
From: https://www.cnblogs.com/XYu1230/p/18364801

相关文章

  • 第七周学习报告
    又经过了一周的学习,今天对本周学习进行总结成员内部类·访问外部类的成员i:成员内部类可以访问外部类的所有成员(包括私有成员),而无需任何特殊条件。·创建实例:要创建成员内部类的实例,你需要先创建外部类的实例,然后通过这个外部类的实例来创建内部类的实例。·持有外部类的引用:成......
  • 基于ssm的新生报到系统(有报告)。Javaee项目,ssm项目。
    演示视频:基于ssm的新生报到系统(有报告)。Javaee项目,ssm项目。资源下载:基于ssm的新生报到系统(有报告)。Javaee项目,ssm项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringMvc+Mybatis+Jsp+Maven来实现。MySQL数据库作为系统数据储存......
  • 基于ssm的在线医疗服务系统(有报告)。Javaee项目,ssm项目。
    演示视频:基于ssm的在线医疗服务系统(有报告)。Javaee项目,ssm项目。资源下载:基于ssm的在线医疗服务系统(有报告)。Javaee项目,ssm项目。项目介绍:采用M(model)V(view)C(controller)三层体系结构,通过Spring+SpringMvc+Mybatis+Jsp+Maven来实现。MySQL数据库作为系统......
  • 基于django+vue家政保洁预约系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着现代生活节奏的加快和人们生活品质的提升,家政保洁服务已成为城市居民日常生活中不可或缺的一部分。然而,传统家政保洁服务预约方式存在......
  • 基于django+vue家用健身器材租赁管理系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着人们健康意识的不断提升,家庭健身逐渐成为了一种流行的生活方式。然而,高昂的健身器材购买成本及空间限制,使得许多家庭难以拥有完备的健......
  • 基于django+vue家乡特色推荐系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着旅游业的蓬勃发展,人们对于旅游体验的需求日益多样化,不再仅仅满足于走马观花式的游览,而是更加追求深度体验和个性化推荐。家乡作为每个......
  • 基于django+vue家乡特产销售系统【开题报告+程序+论文】计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在数字化时代,电子商务的迅猛发展极大地改变了人们的消费习惯与购物方式。然而,对于许多偏远地区或小众市场的特产而言,传统的销售模式仍占主......
  • 软件工程进度报告——第七周
    本周学习了项目的概念和界面搭建1.图形化界面(GUI)采取图形化的方式显示操作界面,有两套完整的体系,AWT包和Swing包。接口:importjavax.swing.*;2.主界面主要由三个组件构成1>JFrame:最外层的窗体2>JMenuBar:最上层的菜单3>JLabel:管理文字和图片的容器3.JFrame(ctrl+p可查看......
  • 学习Java第七周
    本周学习一、1.修饰符classSubClassextendsSuperClass{//类定义部分}表明继承了SuperClass类。注:子类只能从被扩展的父类获得成员变量、方法和内部类(包括内部接口、枚举),不能获得构造器和初始化块。2.Java类只能有一个直接父类,实际上,Java类可以有无限多个间接父类。3......
  • Java学习进度报告
    在自学Java的过程中,我最近重点学习了循环和判断结构。这两部分是编程的基础,理解并掌握它们对写出高效、灵活的代码至关重要。首先,我学习了条件语句,包括if、switch等用法。这些语句使我能够根据不同的条件执行不同的代码块。在实践中,我通过编写简单的计算器程序,加深了对条件判断的......