1. String类的概念
1.1. java.lang.String类用于描述字符串,Java程序中所有的字符串字面值都可以使用该类的对象加以描述,如:"abc"。
1.2. 该类由final关键字修饰,表示该类不能被继承。 从jdk1.9开始该类的底层不使用char[]来存储数据,而是改成 byte[]加上编码标记,从而节约了一些空间。
1.3. 该类描述的字符串内容是个常量不可更改,因此可以被共享使用。 如:
String str1 = “abc”; 其中"abc"这个字符串是个常量不可改变。
str1 = “123”; 将“123”字符串的地址赋值给变量str1, 改变str1的指向并没有改变指向的内容。
2. 常量池的概念(原理)
由于String类型描述的字符串内容是常量不可改变,因此Java虚拟机将首次出现的字符串放入常量池中,若后续代码中出现了相同字符串内容则直接使用池中已有的字符串对象而无需申请内存及创建对象,从而提高了性能。
3. 常用的构造方法
构造方法 | 描述 |
String() | 使用无参方式构造对象得到空字符序列 |
String(byte[] bytes) | 使用bytes数组中的所有内容构造对象 |
String(char[] value) | 使用value数组中的所有内容构造对象 |
String(byte[] bytes, int offset, int length) | 使用bytes数组中下标从offset位置开始的length个字节来构造对象 |
String(char[] value, int offset, int count) | 使用value数组中下标从offset位置开始的count个字符来构造对象 |
String(String original) | 根据参数指定的字符串内容来构造对象,新创建对象为参 数对象的副本 |
4. 常用的成员方法(练熟、记住)
成员方法 | 描述 |
String toString() | 返回字符串本身 |
byte[] getBytes() |
byte数组并返回 |
char[] toCharArray() |
用于将当前字符串内容转换为char数组并返回 |
char charAt(int index) |
方法charAt用于返回字符串指定位置的字符 |
char[] toCharArray() | byte用于将当前字符串内容转换为char数组并返回 |
char charAt(int index) | 方法charAt用于返回字符串指定位置的字符 |
int length() |
返回字符串字符序列的长度 |
boolean isEmpty() | 判断字符串是否为空 |
int compareTo(String anotherString) | 用于比较调用对象和参数对象的大小关系 |
int compareToIgnoreCase(String str) |
不考虑大小写 比较调用对象和参数对象的大小关系 |
String concat(String str) | 用于实现字符串的拼接 |
boolean contains(CharSequence s) |
用于判断当前字符串是否包含参数指定的内容
|
String toLowerCase() |
返回字符串的小写形式
|
String toUpperCase() |
返回字符串的大写形式 |
String trim() | 返回去掉前导和后继空白的字符串 |
boolean startsWith(String prefix) |
判断字符串是否以参数字符串开头
|
boolean startsWith(String prefix, int toffset) |
从指定位置开始是否以参数字符串开头
|
boolean endsWith(String suffix) |
判断字符串是否以参数字符串结尾
|
boolean equals(Object anObject) |
用于比较字符串内容是否相等并返回
|
boolean equalsIgnoreCase(String anotherString) |
用于比较字符串内容是否相等并返回,不考虑大小写 |
int indexOf(int ch) | 用于返回当前字符串中参数ch指定的字符第一次出现的 下标 |
int indexOf(int ch, int fromIndex) |
fromIndexch指定的字符 |
int hashCode() |
获取调用对象的哈希码值 |
int indexOf(String str) |
在字符串中检索str返回其第一次出现的位置,若找不到 返回-1 |
int indexOf(String str, int fromIndex) |
表示从字符串的fromIndex位置开始检索str第一次出现 |
int lastIndexOf(int ch) | 用于返回参数ch指定的字符最后一次出现的下标 |
int lastIndexOf(int ch, int fromIndex) |
用于从fromIndex位置开始查找ch指定字符出现的下标 |
int lastIndexOf(String str) | 返回str指定字符串最后一次出现的下标 |
int lastIndexOf(String str, int fromIndex) |
用于从fromIndex位置开始反向搜索的第一次出现的下标 |
String substring(int beginIndex, int endIndex) |
返回字符串中从下标beginIndex(包括)开始到 endIndex(不包括)结束的子字符串 |
String substring(int beginIndex) |
返回字符串中从下标beginIndex(包括)开始到字符串结尾 |