一.字符串的常用方法
1.字符串构造
1.1 使用常量串构造
String s1 = "hello";
1.2 new String对象
String s2 = new String("hello");
1.3 使用字符数组构造
char[] array = {'h','e','l','l','o'};
注意:
1.String是引用类型,内存储存地址
2.在Java中,用双引号引起来的是字符串类型
2.String对象的比较
2.1 ==比较是否引用同一个对象
比较的是引用的地址是否相同
对于字符数据类型,==比较变量中的值;对于应用数据类型,==比较引用中的地址
2.2 boolean equals(Object anObject) 方法:按照字典序比较
对String字符逐个比较
2.3 int compareTo(String s) 方法: 按照字典序进行比较
与equals()不同的是,compareTo()的返回值为int型
2.4 int compareToIgnoreCase(String str) 方法:与compareTo方式相同,但是忽略大小写比较
3.字符串查找
方法 | 功能 |
char charAt(int index) | 返回index位置上字符,如果index为负数或者越界,抛出IndexOutOfBoundsException异常 |
int indexOf(int ch) | 返回ch第一次出现的位置,没有返回-1 |
int indexOf(int ch, int fromIndex) | 从fromIndex位置开始找ch第一次出现的位置,没有返回-1 |
int indexOf(String str) | 返回str第一次出现的位置,没有返回-1 |
int indexOf(String str, int fromIndex) | 从fromIndex位置开始找str第一次出现的位置,没有返回-1 |
int lastIndexOf(int ch) | 从后往前找,返回ch第一次出现的位置,没有返回-1 |
int lastIndexOf(int ch, int fromIndex) | 从后往前找,返回ch第一次出现的位置,没有返回-1 |
int lastIndexOf(String str) | 从后往前找,返回str第一次出现的位置,没有返回-1 |
int lastIndexOf(String str, int fromIndex) | 从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返 回-1 |
4.字符串转化
4.1 数值和字符串转化 String.valueOf()
4.2 大小写转化
大写转小写:toLowerCase()
小写转大写:toUpperCase()
4.3 字符串转数组
4.4 格式化
5.字符串替换
注意:由于字符串是不可变对象,此时的替换是产生了一个新的字符串
6.字符串拆分
6.1全部拆分
6.2 以指定部分拆分
7.字符串截取
8.字符串的不可变性
由于String中字符实际保存在value数组中,而value数组又是由private所修饰的,无法被访问,因此,String是一种不可变对象,字符串的内容不能被修改和改变,所有修改字符串的方法实际上都是创建新的字符串
9.stringbuffer和stringbuilder
与String用法类似,但StringBuffer和StringBuider可以被修改
StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作
方法 | 说明 |
StringBuff append(String str) | 在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量 |
char charAt(int index) | 获取index位置的字符 |
int length() | 获取字符串的长度 |
int capacity() | 获取底层保存字符串空间总的大小 |
void ensureCapacity(int mininmumCapacity) | 扩容 |
void setCharAt(int index, char ch) | 将index位置的字符设置为ch |
int indexOf(String str) | 返回str第一次出现的位置 |
int indexOf(String str, int fromIndex) | 从fromIndex位置开始查找str第一次出现的位置 |
int lastIndexOf(String str) | 返回最后一次出现str的位置 |
int lastIndexOf(String str,int fromIndex) | 从fromIndex位置开始找str最后一次出现的位置 |
StringBuff insert(int offset, String str) | 在offset位置插入:八种基类类型 & String类型 & Object类型数据 |
StringBuffer deleteCharAt(int index) | 删除index位置字符 |
StringBuffer delete(int start, int end) | 删除[start, end)区间内的字符 |
StringBuffer replace(int start, int end, String str) | 将[start, end)位置的字符替换为str |
String substring(int start) | 将[start, end)位置的字符替换为str |
String substring(int start,int end) | 将[start, end)范围内的字符以String的方式返回 |
StringBuffer reverse() | 反转字符串 |
String toString() | 将所有字符按照String的方式返回 |