1 package day2_7;
2
3 import org.junit.Test;
4
5 /**
6 * @Author Tianhao
7 * @create 2021-02-09-14:58
8 */
9 public class StringTest2 {
10
11 /**
12 * String的方法中只要返回String,一般情况下都是新创建String,
13 * 就是在堆里再创建一个新对象,这也体现了String的不可变性
14 * String toLowerCase()
15 * String toUppercase()
16 * String trim() 返回字符串的副本,忽略前导空白和尾部空白
17 * boolean equals(Object)
18 * boolean equalsIgnoreCase(String)
19 * int compareTo(String): 这是实现Comparable接口的抽象方法
20 * String substring(int beginIndex)
21 * String substring(int beginIndex,int endIndex) : 前闭后开 [beginIndex,endIndex)
22 * char charAt(int index)
23 * boolean isEmpty()
24 * boolean endsWith(String suffix) 是否以指定的字符串结尾
25 * boolean startsWith(String prefix) 是否以指定的字符串开头
26 * boolean startsWith(String prefix,int index) 从指定索引开始,是否以指定的字符串开头
27 * boolean contains(CharSequence) 是否包含指定的字符序列
28 * int indexOf(String) 返回指定子字符串第一次出现的索引
29 * int indexOf(String str,int Index) 从指定索引开始寻找,返回指定子字符串第一次出现的索引
30 * int lastIndexOf(String) 返回指定子字符串出现在最右边的索引
31 * int lastIndexOf(String) 从指定索引开始反向(向左)寻找,返回指定子字符串出现在最右边的索引
32 * 注意:indexOf(String) 和 lastIndexOf(String),如果未找到,都是返回-1
33 *
34 * 什么情况下,indexOf(String) 和 lastIndexOf(String) 返回结果一样?
35 * 1.指定子字符串只出现一次
36 * 2.指定子字符串未找到,都返回-1
37 *
38 * 替换
39 * String replace(char oldChar,char newchar)
40 * String replace(CharSequence target,CharSequence replacement)
41 * String replaceAll(String regex,String replacement)
42 * String replaceFirst(String regex,String replacement)
43 *匹配
44 * boolean matches(String regex)
45 * 拆分
46 * String[] split(String regex)
47 * String[] split(String regex,int limit)
48 *
49 *
50 */
51 @Test
52 public void test() {
53 String s1 = "HelloWorld";
54 String s2 = s1.toLowerCase();
55 String s3 = "HelloWorld".toLowerCase();
56 // == 比较地址值
57 System.out.println(s1 == s2);//false
58 System.out.println(s1 == s3);//false
59 System.out.println(s2 == s3);//false
60
61 System.out.println("*******************");
62 // equals() 比较字符串内容
63 System.out.println(s1.equals(s2));//false
64 System.out.println(s1.equals(s3));//false
65 System.out.println(s2.equals(s3));//true
66
67
68 String s4 = "abae";
69 String s5 = new String("abcgkhlk");
70
71 //只关心内容,从两个字符串的第一个开始,
72 //找到不同的那个字符元素,用字符对应的ASCII码相减
73 //这里是第三个元素a(97)-c(99) = -2
74 int i = s4.compareTo(s5);
75 System.out.println(i); //-2 结果为负数,表示s4 < s5
76
77 }
78
79 }