【Java】包装类 正则表达式 Arrays类 常见算法 泛型

本文详细讲解了Java中的包装类,包括自动装箱、拆箱以及字符串转换;正则表达式的使用,如字符串匹配;Arrays类的常用方法,以及自定义排序规则;接着探讨了常见算法如冒泡排序、选择排序和二分查找;最后深入介绍了Java泛型,包括泛型的优势、自定义泛型类、方法和接口,以及泛型通配符与上下限的概念。
摘要由CSDN通过智能技术生成

包装类

        其实就是8基本数据类型对应的引用类型

Java为了实现一切皆对象,为了8种基本类型提供对应的引用类型

后面的集合泛型其实也只是支持包装类型,不支持基本数据类型

自动装箱:基本类型的数据和变量可以直接赋值给包装类型的变量

自动拆箱:包装类型的变量可以直接赋值给基本数据类型的变量

包装类的特有功能:
包装类的变量的默认值可以是null,容错率更高。


可以把基本类型的数据转换成字符串类型(用处不大)
①调用toString()方法得到字符串结果。
②调用Integer.toString(基本类型的数据)。


可以把字符串类型的数值转换成真实的数据类型(真的很有用)
①Integer.parseInt(“字符串类型的整数”)
②Double.parseDouble(“字符串类型的小数”)

public class Test {
    public static void main(String[] args) {
        Integer it = 23;
        System.out.println(it);

        int age = 100;
        Integer it2 = age; // 自动装箱:可以把基本类型的变量直接赋值给包装类型的变量。
        System.out.println(it2);

        Integer it3 = 111;
        int age3 = it3;  // 自动拆箱:可以直接把包装类型的变量赋值给基本数据类型。
        System.out.println(age3);

        System.out.println("---------------------------");
        Integer it4 = 0;
        Integer it5 = null;

        // 包装类的特有功能2:把基本数据类型转换成字符串类型。
        Integer it6 = 23;
        String s1 = it6.toString(); // "23"
        System.out.println(s1 + 1); // 231

        Integer it7 = 23;
        String s2 =  Integer.toString(it7);
        System.out.println(s2 + 1); // 231

        String s3 = it7 + ""; // 字符串了!
        System.out.println(s3 + 1); // 231

        // 包装的特有功能3:把字符串类型的数值转换成对应的基本数据类型 (真的有用)
        String str = "23";
        // int a = Integer.parseInt(str); // 23
        int a = Integer.valueOf(str); // 23
        System.out.println(a + 1); // 24

        String str2 = "99.5";
//        double score = Double.parseDouble(str2);
        double score = Double.valueOf(str2);
        System.out.println(score + 0.5);
        
        ArrayList<Integer> lists = new ArrayList<>();
    }
}

正则表达式

        正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性

public class RegexDemo {
    public static void main(String[] args) {
        System.out.println(checkQQ("363921799"));
        System.out.println(checkQQ("363921799dazz"));

        System.out.println(checkQQ2("363921799"));
        System.out.println(checkQQ2("363921799dazz"));
    }

    public static boolean checkQQ2(String qq){
        return qq != null && !qq.startsWith("0") && qq.matches("\\d{6,20}");
    }

    public static boolean checkQQ(String qq){
        // 1、判断qq是否为null,以及是否不满足6位以上。 不能以0开始。
        if(qq == null || qq.length() < 6 || qq.length() > 20 || qq.startsWith("0")) {
            return false;
        }
        
        // 2、必须全部是数字 遍历qq号码中的每个字符    323a242442
        for (int i = 0; i < qq.length(); i++) {
            char ch = qq.charAt(i);
            // 3、判断这个字符是否是非数字
            if(ch < '0' || ch > '9') {
                return false;
            }
        }
        
        // 4、返回正确
        return true;
    }
}

字符串对象提供了匹配正则表达式的方法:

public boolean matches​(String regex)

判断是否匹配正则表达式,匹配返回true,不匹配返回false

public class RegexDemo {
    public static void main(String[] args) {
        //public boolean matches(String regex):判断是否与正则表达式匹配,匹配返回true
        // 只能是 a  b  c
        System.out.println("a".matches("[abc]")); // true
        System.out.println("z".matches("[abc]")); // false

        // 不能出现a  b  c
        System.out.println("a".matches("[^abc]")); // false
        System.out.println("z".matches("[^abc]")); // true
        System.out.println("a".matches("\\d")); // false
        System.out.println("3".matches("\\d"));  // true
        System.out.println("333".matches("\\d")); // false 每次只能匹配一个字符!

        System.out.println("z".matches("\\w")); // true
        System.out.println("2".matches("\\w"));// true
        System.out.println("21".matches("\\w")); // false
        System.out.println("你".matches("\\w")); // false
        System.out.println("你".matches("\\W")); // true
        System.out.println("---------------------------------");
        //  以上正则匹配只能校验单个字符。

        // 校验密码
        // 必须是数字 字母 下划线 至少 6位
        System.out.println("242dxf_33".matches("\\w{6,}"));
        System.out.println("243".matches("\\w{6,}"));

        // 验证码 必须是数字和字符  必须是4位
        System.out.println("23dA".matches("[\\w&&[^_]]{4}"));
        System.out.println("2_dA".matches("[\\w&&[^_]]{4}"));
        System.out.println("24dA".matches("[a-zA-Z0-9]{4}"));
        System.out.println("2_dA".matches("[a-zA-Z0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值