本章概述
• 基本数据类型的包装类
• 字符串相关类
不可变字符序列:String
可变字符序列:StringBuffer、StringBuilder
• 时间处理相关类
Date
DateFormat、SimpleDateFormat
Calender
• Math类
• File类
• 枚举类:Jdk1.5
包装类
包装类是将基本类型封装到一个类中
包含属性和方法,方便对象操作
包装类位于java.lang包中
![](https://i-blog.csdnimg.cn/blog_migrate/b7af3f0d6a20280df065a1a945d2ee66.png)
String(不可变字符序列)
▪ Java字符串就是Unicode字符序列,例如串
“
Java
”就是4个
Unicode字符J,a,v,a组成的。
▪ Java允许使用符号"+"把两个字符串连接起来
– String s1 = “Hello”;String s2 = “World!”;
– String s = s1 + s2; //HelloWorld!
String类的常用方法(1)
char charAt(int index)
返回字符串中第index个字符。
boolean equals(String other)
如果字符串与other相等,返回true
boolean equalsIgnoreCase(String other)
如果字符串与other相等(忽略大小写),则返回true
int indexOf(String str) lastIndexOf(String str,int idx)
int length()
返回字符串的长度。
String replace(char oldChar,char newChar)
返回一个新串,它是通过用 newChar 替换此字符串中出现的所有oldChar
而生成的
String类的常用方法(
2)
boolean startsWith(String prefix)
如果字符串以prefix开始,则返回true
boolean endsWith(String prefix)
如果字符串以prefix结尾,则返回true
String substring(int beginIndex)
String substring(int beginIndex,int endIndex)
返回一个新字符串,该串包含从原始字符串beginIndex到串尾戒endIndex-1的所有字符
String toLowerCase()
返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母
String toUpperCase()
返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母
String trim()
返回一个新字符串,该串删除了原始字符串头部和尾部的空格
字符串比较
▪ equals判断字符串值相等, ==判断字符串对象引用相等!
字符串常用提取方法
![](https://i-blog.csdnimg.cn/blog_migrate/2c18e936e1534040bfedc613a364b721.png)
字符串拆分
▪ 有一段歌词,每句都以空格“ ”结尾,请将歌词每句按行输出
▪ String类提供了split()方法,将一个字符串分割为子字符串,结
果作为字符串数组返回
StringBuffer类与StringBuilder类
StringBuffer类
▪ 利用StringBuffer类的length()和insert ()方法实现需求
▪ 将一个数字字符串转换成逗号分隔的数字串,即从右边
开始每三个数字用逗号分隔
字符串选用 A
▪ String:不可变字符序列
▪ StringBuilder:可变字符序列、效率高、线程不安全
▪ StringBuffer:可变字符序列、效率低、线程安全
▪ String使用陷阱:
– string s="a"; //创建了一个字符串
s=s+"b"; //实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串
s+"b"。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内
存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能
![](https://i-blog.csdnimg.cn/blog_migrate/4b568852ccf3fa09fcea3f45e971457f.png)
Date时间类(java.util.Date)
Date类:表示日期和时间
提供操作日期和时间各组成部分的方法
DateFormat类 与SimpleDateFormat类
用于定制日期时间的格式
Calendar类:
抽象类
用于设置和获取日期/时间数据的特定部分
Calendar类提供一些方法和静说明态字段来操作日历
方法或属性
int get(int field) 返回给定日历字段的值
MONTH 指示月
DAY_OF_MONTH 指示一个月中的某天
DAY_OF_WEEK 指示一个星期中的某天
Math类
▪ 包含了常见的数学运算函数。
▪ random()生成[0,1)之间的随机浮点数
▪ 生成:0-10之间的任意整数:
– int a = (int)(10*Math.random());
▪ 生成:20-30之间的任意整数:
– int b = 20 + (int)(10*Math.random());
枚举
枚举指由一组固定的常量组成的类型
▪ 枚举类型:
1. 只能够取特定值中的一个
2. 使用enum关键字
3. 所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类!
而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是publi
c static final的。可以直接通过枚举类型名直接使用它们。)
4. 强烈建议当你需要定义一组常量时,使用枚举类型