1丶boolean equals(Object anObject) 方法
这个方法的作用是比较两个引用所指向的对象当中的内容是否一致。
String类重写了父类Object中equals方法,Object中equals默认按照==比较,String重写equals方法后,按照如下规则进行比较:
//有注释版本 public boolean equals(Object anObject) { // 1. 先检测this 和 anObject 是否为同一个对象比较,如果是返回true if (this == anObject) { return true; } // 2. 检测anObject是否为String类型的对象,如果是继续比较,否则返回false if (anObject instanceof String) { // 将anObject向下转型为String类型对象 String anotherString = (String)anObject; int n = value.length; // 3. this和anObject两个字符串的长度是否相同,是继续比较,否则返回false if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; // 4. 按照字符串顺序,从前往后逐个字符进行比较 while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } }
例如:
输出:true
输出:false
2丶int compareTo(String s) 方法
这个方法的作用是比较两个字符串的大小关系。相同返回0,大于返回一个整数,小于返回一个负数。
因为String这个类实现了Comparable接口,所以重写了compareTo方法。
举例:
那他的返回值为什么是4或-4而不是5或-5或者其他的数字呢,如果你想研究它的返回值,你可以进入它的源码中看一下:
所以具体可以总结为:
- 先按照次序比较,如果出现不等的字符,直接返回这两个字符的大小差值
- 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值
3、 int compareToIgnoreCase(String str) 方法
这个方法与compareTo方式相同,但是忽略大小写比较。
例如:
此时我们认为str1和str2是相等的,输出0
4丶字符串查找常用方法.
方法 | 功能 |
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) | 从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返回-1 |
int lastIndexOf(String str) | 从后往前找,返回str第一次出现的位置,没有返回-1 |
int lastIndexOf(String str, int fromIndex) | 从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返回-1 |
5.丶字符串转化常用方法.
大小写转换
字符串转数组
6丶字符串替换
方法 | 功能 |
String replaceAll(String regex, String replacement) | 替换所有的指定内容 |
String replaceFirst(String regex, String replacement) | 替换首个内容 |
7丶字符串拆分
方法 | 功能 |
String[] split(String regex) | 将字符串全部拆分 |
String[] split(String regex, int limit) | 将字符串以指定的格式,拆分为limit组 |
注意事项:
- 字符"|“,”*“,”+"都得加上转义字符,前面加上 “\\” .
- 而如果是 “\” ,那么就得写成 “\\\\” .
- 如果一个字符串中有多个分隔符,可以用"|"作为连字符.
8丶字符串截取
方法 | 功能 |
String substring(int beginIndex) | 从指定索引截取到结尾 |
String substring(int beginIndex, int endIndex) | 截取部分内容 |
注意事项:
- 索引从0开始
- 注意前闭后开区间的写法, substring(0, 4) 表示包含 0 号下标的字符, 不包含 4 号下标
9丶去掉左右空格(String trim()方法)
注意:只会去掉字符串中的左右空格,但保留中间空格,也会去掉字符串开头和结尾的空白字符(空格, 换行, 制表符等)