本课目标
熟练使用 String 操作字符串
熟练使用 StringBuffer 操作字符串
会使用 Date类和 Calendar 类操作日期时间
会使用 SimpleDateFormat 类格式化日期时间
一、String 类
在Java中使用String 类的对象储存字符串
String 类位于Java.lang 包中,具有丰富的构造方法和方法
1.String 类的常用方法
方法名 | 作用 |
char charAt(int index) | 返回指定索引处的 char 值。 |
String concat(String str) | 将指定字符串连接到此字符串的结尾。 |
boolean contains(CharSequence s) | 当此字符串包含指定的 char 值序列时,返回 true。 |
boolean equals(Object anObject) | 将此字符串与指定的对象比较。 |
boolean equalsIgnoreCase(StringanotherString) | 将此 String 与另一个 String 比较,不考虑大小写。 |
byte[] getBytes() | 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
int indexOf(String str) | 返回指定子字符串在此字符串中第一次出现处的索引。 |
int lastIndexOf(String str) | 返回指定子字符串在此字符串中最右边出现处的索引。 |
int length( ) | 返回此字符串的长度。 |
boolean matches(String regex) | 告知此字符串是否匹配给定的正则表达式。 |
2.String 类的 length 和 trim 方法
- int length():返回字符串中的字符数
- String trim():返回字符串的副本,忽略前导空白和尾部空白
3.String 类的 equals()方法
- boolean equals(Object anObject) :比较存储在两个字符串对象的内容是否一致
- equals() 方法比较原理(重写了Object 类的equals() 方法)
注:怎末理解 == 与 equals ? String 类型的 == 与 equals 有什么区别?
Object 类中的 equals 方法中返回的就是 == 运算。String 类中重写了equals 方法,比较的是两个字符串的内容是否相同;而 == 比较的是两个字符串在内存中的地址是否是同一个
4.字符串比较多其他方法
- boolean equalsIgnoreCase(StringanotherString) :字符串比较时不考虑大小写
- String toLowerCase() 方法:将此 String 中的所有字符都转换为小写
- String toUpperCase()方法:将此 String 中的所有字符都转换为大写
5.字符串的搜索和提取方法
方法名 | 说明 |
public int indexOf(int ch) | 搜索第一个出现的字符ch(或字符串value),如果没有找到,返回-1 |
public int indexOf(String value) | |
public int lastIndexOf(int ch) | 搜索最后一个出现的字符ch(或字符串value),如果没有找到,返回-1 |
public int lastIndexOf(String value) | |
public String substring(int index) | 提取从位置索引开始的字符串部分 |
public String substring(int beginindex, int endindex) | 提取beginindex和endindex之间的字符串部分 |
二、StringBuffer 类
- StringBuffer类位于java.util包中,是String类的增强类
- 对字符串频繁修改时,使用StringBuffer类可以大大提高程序执行效率
注:String类、StringBuffer类和StringBuilder类的区别?
- String 是不可变对象,在每次对 String 类型进行改变时其实都等同于生成了一个新的String 对象,然后在指向新的对象
- 经常改变内容的字符串最好不要使用String ,因为每次生成对象都会对系统性能产生影响
- StringBuffer 是可变的字符串,在每次对 StringBuffer 对象进行改变时,会对StringBuffer 对象本身进行操作,而不是生成新的对象
- 字符串经常改变的情况可使用 StringBuffer ,执行效率要比String 类高
- JDK5.0 后提供了 StringBuilder ,等价于 StringBuffer
- 区别:StringBuffer 类是线程安全,StringBuilder 类是单线程,不提供同步,理论上效率更高
三、Calendar 类
- Calendar类是抽象类:用于设置和获取日期/时间数据的特定部分
-
Calendar类提供一些方法和静态字段来操作日历
属性 | 说明 |
static int MONTH | 指示月 |
static int DAY_OF_MONTH | 指示一个月中的某天 |
static int DAY_OF_WEEK | 指示一个星期中的某天 |
方法 | 说明 |
static Calendar getInstance() | 使用默认时区和语言环境获得一个Calendar对象 |
int get(int field) | 返回给定日历字段的值 |