常用类
1. 字符串
1. String
n 语法
语法特殊性——提供了String常量对象
String str= *; String str= new String(*);
String str = null;//空,没对象 String str = “”;//空串,有对象
字符串判断为空 if(str != null && !str.equals(“”)){} 不能交换位置
n 内存存放
内存存放的特殊性——String出来对象在加载期就会被产生,帮到数据段的字符串常量池当中运行起来以后需要直接使用,直接到常量池取就可以啦,字符串常量池中也算一个对象。
String对象内容不可变
n 提供了大量的字符串操作方法
u 跟数组有关的方法
l str.length(); String对象的长度
l Char[] array =str.toCharArray(); 把String对象转换为char数组
l str.charAt(); 根据下标得到String对象该下标位置的字符
l str.indexOf(‘o’); 得到某个字符在String对象中首次出现的位置
l str.lastIndexOf(‘o’); 得到某个字符在String对象中最后一次出现的位置
u 字母有关的方法
l str.toUpperCase(); 得到一个全大写的新String对象
l str.toLowerCase(); 得到一个全小写的新String对象
l “Hello”.equalsIgnoreCase(str); 忽略大小写比较相等
l “hello”.compareTo(“hello”); 让两个String做字典顺序作比较
l “Hello”. compareToIgnoreCase(“hello”); 让两个String忽略大小写做字典顺序作比较
u 跟操作技巧有关的方法
l str.contains(“o”); 判断一个String对象是否包含另一个字符串
l str.startWith(“”he); 判断一个String对象以什么开头
l str.endsWirh(“sf”); 判断一个String对象以什么结尾
l str.replace(‘d’, ‘s’); 将String对象中的某个字符替换成另一个字符
l str.replaceAll(“k”, “o”); 将String对象中的某个子串替换成另一个String对象,支持正则表达式
l str.replaceFirst(“d”, “o”); 将String对象中首次出现的某个子串替换成另一个字符串
u 特殊方法
l Trim方法,去掉String的前后空格,只要做输入就要无条件trim一次
str.trim ();
l Split方法,根据分隔符拆分字符串,当以分隔符结尾的时候,将不再拆分
str = “1986-8-5” string [] array = birthday.split (“-”);
l matches方法,做正则表达式校验
2. String Buffer
String Buffer也是Java中表示字符串的一种数据类型,与String的区别是它的内容可变。
String Buffer需要new出来,并且字符串拼接不能使用+号,由于String Buffer内容可变,通常我们在做大量字符串拼接时使用它比使用String更有效。String Buffer没有String丰富,主要都是类似于append/insert这样的跟拼接有关系的方法。
3. String Builder
String Builder 与String Buffer非常类似,无论是内容可变,还是使用API和语法,都保持一致
String Builder线程不安全,String Buffer线程安全,但是线程安全的效率低,线程不安全的效率高
2. 正则表达式(regex)
概念:用来定义一个字符串格式的模板,其本身也是一个字符串,就是用来规范字符串格式的一种表达式,其表现形式就是字符串,直白来说—任何一个字符串都是正则表达式,比如”hello”就是一个,只不过它固定格式只有”hello”自己本身,满足,想要有更多的满足情况,就必须加入正则表达式.
l [ ]一个方括号代表一个字符,在内部填写这个位置可以放那些符号。
l ( )分组可选,用|分组
l { }代表表达式出现的次数
n [0 - 9 ]{m, n};最少出现m次,最多出现n次
n [0 – 9 ]{m, };最少出现m次,最多不限
n [0 – 9 ]{m}; 只能出现m次
n [0 – 9 ]*任意次
n [0 – 9 ]+至少一次
n [0 – 9 ]?零到一次
3. 包装类
是基本数据类型和引用数据类型的封装
是基本数据类型与引用数据类型的桥梁
语法A PI掌握
l 包装类与基本数据类型转换
n 根据一个int变量,转换成它对应的Integer对象
int a = 100; Integer in = new Integer(a); //标准做法
Integer in = a;//自动封箱,JDK1.5提供的语法糖
n 根据一个Integer对象,将它的值放到一个int变量中
Integer in=205; int a = in.intValue();//标准做法
Int a = in;//自动拆箱,这是JDK1.5提供的语法糖
l 包装类与引用数据类型装换
n 根据一个String对象,产生一个Integer对象
String str = 100; Integer in =new Integer(str); //标准做法
Integer in = str;//自动封箱,JDK1.5提供的语法糖
n 根据一个Integer对象,产生一个String对象
Integer in = 345; String str = in.toString(in);//标准做法
String str = in + “ ”;//当对对象做拼接字符串操作时,相当于默认调用对象的toString方法
l 基本数据类型与引用数据类型转换
n 根据一个int,产生一个String对象
Int a = 120; String str = Integer.toString(a);
n 根据一个String对象,产生一个int
String str = “2500”; Int a = Integer.parseInt(str);//最重要常用的一个转换
4. 时间日期类
本质:在计算机中用的是long类型 记录的是当前距离1970年1月1号,0:00:000过了多少毫秒 1秒= 1000毫秒
currentTimeMillis()方法计算原点时间到系统时间过了多少毫秒
l Date
产生的Date类对象中的after、before、compareTo、equals这些时间日期比较的方法还能继续使用
在输出date的字符串信息时,通常配合使用SimpleDateFormat这个类
SimpleDateFormat sdf = newSimpleDateFormat(); String a =sdf.format(new Date);
l Calendar
在calendar对象中有一个.getInstance();方法返回一个GregorianCalendar
Calendar仅在需要设置时间时使用,month月份使用是需要month-1
5. Properties
l 它就是一个Map集合,可以写入读出属性文件(key = value),键值对用String操作
l Properties.Store(“newFileOutputStream(文件名)”, “注释”)//存文件
l 在存文件时,如果文件不存在,会产生一个新的文件不会报错。如果存在会覆盖原文件
l Properties.load(“newFileInputStream(文件名)”);//取文件,必须保证文件名和路径填写正确,否则会报异常,就算try-catch也只能解决程序不死,还是读不到数据
注意不要将文件名写成绝对路径