java项目总结4

发布于:2024-07-06 ⋅ 阅读:(38) ⋅ 点赞:(0)

1.正则表达式

用于验证字符串是否满足自己所需要的规则。方法:matches

注意:\在Java中有特殊涵义,是将其它的意思本来化,假设"是用来引用字符串的,但是你如果想要输出它,那是不是就变成了System.out.println(""");那很明显会报错,这需要加上\就行了,将"的意思本来化,就变成了普普通通的"了。正确形式System.out.println("\"");所有在使用上面的\d,\D,\s等等的时候就需要在它前面加上\。

public class aaa2 {
    public static void main(String[] args) {
        String r="2161672768";
        //qq号是9位到10位的,第一个不为0
        System.out.println(r.matches("[0-9]\\d{8,9}"));
    }
}

这里的{8,9}表示字符串的后面8个或者9个,也指前面的//d只能出现8次或者9次,因为前面的判断第一个是不是0,用掉了一个字符(【0-9】);

注意:matches(),括号里面的字符串,当然也可以这样。

public class aaa2 {
    public static void main(String[] args) {
        String r="2161672768";
       //qq号是9位到10位的,第一个不为0
//        System.out.println(r.matches("[0-9]\\d{8,9}"));
        String e="[0-9]\\d{8,9}";
        System.out.println(r.matches(e));
    }
}

2.爬虫

搜索关键词或者关键句。

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

public class aaa2 {
    public static void main(String[] args) {
        //有如下文本,请按照要求爬取数据。
        String str = "Java自从95年问世以来,经历了很多版本,目前企业中用的最多的是Java8和Java11,"
                + "因为这两个是长期支持版本,下一个长期支持版本是Java17,相信在未来不久Java17也会逐渐登上历史舞台";
        //1.获取正则表达式的对象
        Pattern p = Pattern.compile("Java\\d{0,2}");//找java,java后面可以有0到2个数字
        //2.获取文本匹配器的对象,m:文本匹配器的对象,str:大串,p:规则,m要在str中找符合p规则的小串
        // 拿着m去读取str,找符合p规则的子串
        Matcher m = p.matcher(str);
        //3.利用循环获取
        while (m.find()) {
            String s = m.group();
            System.out.println(s);
        }
    }
}

结果如下:

拓展1:我们爬虫要爬的数据一般不止一个,matches有很好的解决方法。假设我们要爬虫java\\d{0,2}和c++\\d{0,2}怎么办呢

可以将String r="(java\\d{0,2})|(c++\\d{0,2})",没错中间的|就是你想的那样,类似c的||(或者)功能,在该方法中同样试用。(只有一条|)

拓展2(需求1):String r="java(?=8|11|17)"

?表示java,=表示java后面是否有8或者11或者17,有就爬取,但是这里打印的时候不会将后面的数字打印出来,只会打印java,方式跟之前的一样,只不过规则的字符串变了。

还有将r="((?i)java)(?=8|11|17)"表示忽略java的大小写进行爬取。

拓展3(需求2):String r="((?i)java)(8|11|17)"或者String r="((?i)java)(?:8|11|17)"

拓展4(需求3)String r="((?i)java)(?!8|11|17)

拓展5:贪婪和非贪婪爬取

拓展6:捕获分组和非捕获分组

3.时间

获取当前时间:Date r=new Date();   long time =r.getTime(); 计算现在距离起始时间过了多少毫秒

修改距离起始时间的毫秒值   r.setTime(毫秒值);         

long的通常要加上大写或者小写的l,L更加显眼。

该方法打印结果如下:

修改后可运用到项目的如下;(默认)

日期的相关标识符:

自定义时间格式如下:

字符串设置时间格式:(方法中的格式要更字符串一样否则会报错)

4.包装类

包装类(Wrapper Class)在Java中是一种特殊的类,它们用来将基本数据类型包装成对象。主要的包装类有 IntegerLongFloatDoubleBooleanCharacterByteShort,分别对应基本数据类型int,long,float,double,boolean,char,byte,short。

作用:

1.将基本数据类型转换为对象

2.提供了方法来操作基本数据类型

3.支持泛型编程

4.提供了常量和静态方法

5.实现了一些接口

6.自动装箱和拆箱

装箱指将基本数据类型转换成包装对象,拆箱指将包装对象转换成基本数据练习。自动指他们创建出来后,在使用时,底层逻辑会自动转化,不需要自己手动转化。

5.工具类之Arrays

6.Lambda        

Lambda 表达式使得 Java 语言在编程风格上更加现代化和函数式,提升了代码的简洁性、可读性和并行处理的能力,是 Java 8 版本中一个重要的语言特性。

注意:

1.Lambda表达式可以用来简化匿名内部类的书写

2.Lambda表达式只能简化函数式接口的匿名内部类的写法

3.函数式接口:有且仅有有一个抽象方法的接口叫做函数式接口,接口上方可以加@FunctionalInterface注解


网站公告

今日签到

点亮在社区的每一天
去签到