包装类
其实就是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