String类
基本概念
java.lang.String用于描述字符串,可以描述java程序中所有字符串字面值,如"abc"等。
该类描述的字符串内容是个常量,一旦创建完毕之后将不能进行更改。
Java为String提供了缓存池机制,当使用双引号定义对象的时候,Java环境首先取字符串缓冲池寻找相同内容的字符串
如果存在就直接拿来应用,如果不存在,就创建一个新的字符串对象放在缓冲池当中。
比如:
String s1 = "abc"; - "abc"是个常量,不能更改。
s1 = "123"; 并不是改变"abc"字符串的内容,而是改变引用s1的指向。
注意:
String s1 = null; String s1 = "";之间是否有区别
解析:
前者表示没有字符串对象,后者表示有字符串对象但是没有内容。
常用的方法(*)
(1)常用的构造方法
String() - 使用无参构造方式构造对象
String(byte[] bytes) - 根据参数指定的byte数组来构造对象
String(byte[] bytes, int offset. int length) - 使用参数数组中的一部分来构造对象
String(String original) - 根据参数指定的字符串内容来构造对象
String(StringBuffer buffer) - 根据参数指定的引用来构造对象
String(StringBuilder builder) - 根据参数指定的引用来构造对象
(2)常用的成员方法
char charAt(int index) - 用于返回参数指定下标位置的字符
int length() - 用于返回当前字符串的长度
int compareTo(string anotherString)
- 用于比较调用对象和参数对象的字符串大小关系并返回。
- 使用当前字符串第一个字符起的每一个字符减去参数字符串中对应位置的字符。
- 若第一个字符不相等则可以代表字符大小的关系,若相等则使用下一个字符继续比较。
- 若存在的字符都相同,则大小取决于长度。
如:
"abc" 和 "bcd" 比较大小:由于第一个字符'a'小于'b',因此字符串"bcd"比较大
"abc" 和 "abd" 比较大小:由于前两个字符相等,第三个字符'c'小于'd',因此"abd"比较大
"abc" 和 "abcd" 比较大小:由于前三个字符相等,则大小取决于字符的长度,因此"abcd"比较大
int compareToIgnoreCase(String str)
- 用于比较调用对象和参数对象的字符串大小关系并返回。
- 不考虑大小写,也就是'A'和'a'在该方法中被认为是相等的
boolean equals(Object anObject)
- 用于比较字符串内容是否相等
boolean equalsIgnoreCase(String anotherString)
- 用于比较字符串内容是否相等并返回,不考虑大小写
案例:
提示用户输入用户名和密码模拟登录的过程,当用户输入"admin"和"123"的时候,则提示登录成功,否则提示登录失败
当用户输入三次之后仍然失败,则提示"账户已冻结",要求不考虑大小写。
boolean contains(CharSequence s) - 用于判断调用对象中是否包含参数指定的内容
创建实现类的对象作为实参传递,而String类就是该接口的实现类
使用匿名内部类创建接口类型的对象作为实参传递
boolean endsWith(String suffix) - 用于判断当前的字符串是否以参数指定的内容结尾
boolean startsWith(String prefix) - 用于判断当前的字符串是否以参数指定的内容开头
String toLowerCase() - 用于将当前字符串中的所有字符转换为小写并返回
String toUpperCase() - 用于将当前字符串中的所有字符转换为大写并返回
String trim() - 用于去除当前字符串中两端的空白字符并返回
byte[] getBytes() - 用于将当前字符串转换为byte数组并返回
char[] toCharArray() - 用于将当前字符串内容转换为char类型的数组并返回
int indexOf(int ch) - 用于返回参数 ch指定的字符第一次出现的下标
int indexOf(int ch, int fromIndex) - 用于从fromIndex位置开始查找ch指定的字符,若查找失败则返回 -1
int indexOf(String str) - 用于查找参数str指定的字符串并返回下标
int indexOf(String str,int fromIndex) - 用于从fromIndex位置开始查找
int laseIndexOf(int ch) - 用于返回参数 ch指定的字符最后一次出现的下标
int lastIndexOf(int ch, int fromIndex) - 用于从fromIndex位置开始查找ch指定的字符出现的下标,反向搜索的第一次,若查找失败则返回 -1
int lastIndexOf(String str) - 用于返回str指定的字符串最后一次出现的下标
int lastIndexOf(String str,int fromIndex) - 用于从fromIndex位置开始反向搜索的第一次
String substring(int beginIndex) - 用于获取当前字符串中从 beginIndex 位置开始的子字符串并返回
String substring(int beginIndex,int endIndex) - 用于获取当前字符串中从beginIndex位置开始到endIndex位置结尾的子字符串并返回