一、连接字符串
1、连接多个字符串
使用“+”运算符可以实现连接多个字符串的功能。“+” 运算符可以连接多个运算符并产生一个 String 对象。
2、连接其他数据类型
字符串与其他基本数据类型进行连接,会将这些数据直接转换成字符串。
3、public String concat(String str)
将指定的字符串连接到该字符串的末尾。
Demo:
1 public static void main(String[] args) {
2 String str1 = "Hello";
3 String str2 = "Java";
4
5 // 使用"+" 运算符连接
6 System.out.println(str1+" "+str2); // Hello Java
7
8 int booktime = 4;
9 double practice = 4.5;
10 // 连接不同数据类型的字符串
11 System.out.println("我每天花费"+booktime+"小时看书,"+practice+"小时练习"); // 我每天花费4小时看书,4.5小时练习
12
13 // concat:将字符串连接到该字符串尾部。
14 System.out.println(str1.concat(" World")); // Hello World
15
16 }
二、判断功能的方法
1、public boolean equals( Object anObject)
此方法将此字符串与指定对象进行比较。
2、public boolean equalsIgnorCase(String anOtherString)
将此字符串与指定字符串对象比较,忽略大小写。
Demo:
1 public static void main(String[] args) {
2
3 // 创建字符串对象
4 String s1 = "hello";
5 String s2 = "hello";
6 String s3 = "HELLO";
7
8 // boolean equals(Object obj):比较字符串的内容是否相同
9 System.out.println(s1.equals(s2)); // true
10 System.out.println(s1.equals(s3)); // false
11
12 //boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
13 System.out.println(s1.equalsIgnoreCase(s2)); // true
14 System.out.println(s1.equalsIgnoreCase(s3)); // true
15
16 }
注意:
a、== 是进行对象的地址值比较,比较字符串的内容用 equal 方法。
b、在使用 equal 的时候,如果比较双方一个常量一个变量,推荐把常量字符串写在前面,因为一旦变量为 null ,会报空指针异常。
扩展:Object 是” 对象”的意思,也是一种引用类型。作为参数类型,表示任意对象都可以传递到方法中
三、获取字符串信息的方法
1、public int length()
返回此字符串的长度。
2、public char charAt(int index)
返回指定索引处的 char 值。
3、public int indexof(String str)
返回指定子字符串第一次出现在该字符串内的索引,如果没有检索到,返回 -1。
4、public int lastIndexof(String str)
返回指定子字符串在此字符串中最后一次出现处的索引位置,如果没有检索到,返回 -1。
5、public boolean contains(CharSequence str)
当且仅当此字符串包含指定的 char 值序列时,返回 true。
Demo:
1 public static void main(String[] args) {
2 String s = "Hello World";
3
4 // int length :获取字符串的长度,其实也就是字符个数
5 System.out.println(s.length()); // 11
6
7 //char charAt(int index) 获取指定索引处的字符
8 System.out.println(s.charAt(0)); // H
9
10 //int indexOf(String str):获取str在字符串对象中第一次出现的索引,没有返回‐1
11 System.out.println(s.indexOf("o")); // 4
12
13 //int lastIndexOf(String str):获取str在字符串对象中最后一次出现的索引,没有返回‐1
14 System.out.println(s.lastIndexOf("rl")); // 8
15
16 //boolean contains(String str):查看指定的字符串是否在该字符串中,存在为true,不存在为 false
17 System.out.println(s.contains("Wo")); // true
18 }
四、转换功能的方法
1、public char[ ] toCharArray()
将此字符串转换为新的字符数组。
2、public byte[ ] getBytes()
使用平台的默认字符集将该 String编码转换为新的字节数组。
3、public String replace(CharSequence target,CharSequence replacement)
将与target匹配的字符串使用replacement字符串替换。(如果没有可以匹配的字符,将原字符串返回)
4、public String toLowerCase()
使用默认语言环境的规则将此 String
中的所有字符都转换为小写。
5、public String toUpperCase()
使用默认语言环境的规则将此 String
中的所有字符都转换为大写。
Demo:
1 public static void main(String[] args) {
2 String str = "abcdefg";
3
4 // char[] toCharArray():把字符串转换位字符数组
5 char[] chars = str.toCharArray();
6 System.out.println(Arrays.toString(chars)); // [a, b, c, d, e, f, g]
7
8
9 // byte[] getBytes():把字符串转换为字节数组
10 byte[] bytes = str.getBytes();
11 System.out.println(Arrays.toString(bytes)); // [97, 98, 99, 100, 101, 102, 103]
12
13 String str2 = "iT,i Love You";
14
15 // String replace(old str,new str):把匹配的原来的字符串用新的字符串替换掉
16 String replace = str2.replace("i", "I");
17 System.out.println(replace); // IT,I Love You
18
19 //String toLowerCase():将此 String 中的所有字符都转换为小写。
20 System.out.println(str2.toLowerCase()); // it,i love you
21
22 //String toUpperCase():将此 String 中的所有字符都转换为大写。
23 System.out.println(str2.toUpperCase()); // IT,I LOVE YOU
24
25
26 }
扩展:CharSequence 是一个接口,也是一种引用类型。作为参数类型,可以把String对象传递到方法中。
五、截取分割字符串的方法
1、public String subString(int beginIndex)
返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
2、public String subString(int beginIndex,int endIndex)
返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。(左闭右开区间)
3、public String split(String regex)
将此字符串按照给定的regex(规则,可以是正则表达式)拆分为字符串数组。
注意:如果按照英文句点“.”进行切分,必须写"\\."(两个反斜杠)
Demo:
1 public static void main(String[] args) {
2 String str = "aa|bb|cc|dd|ee";
3
4 //String subString(int start):从start开始截取字符串到字符串结尾
5 System.out.println(str.substring(6)); // cc|dd|ee
6
7 //String subString(int start,int end):从start到end截取字符串。含start,不含end。
8 System.out.println(str.substring(2,8)); // |bb|cc
9
10 //String split(string regex):按照给定的regex(规则)拆分为字符串数组。
11 String[] split = str.split("|");
12
13 System.out.println(Arrays.toString(split)); //[a, a, |, b, b, |, c, c, |, d, d, |, e, e]
14
15 }
六、其他方法
1、public String trim()
返回字符串的副本,忽略前导空白和尾部空白。
2、public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
3、public boolean endsWidth(String suffix)
测试此字符串是否以指定的后缀结束。
4、public int campareTo()
按字典顺序比较两个字符串。
5、public int compareToIgnoreCase()
按字典顺序比较两个字符串,忽略大小写。
注意:该比较基于字符串中各个字符的 Unicode 值,按字典顺序将此 String对象表示的字符序列与参数字符串所表示的字符序列进行比较。
如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数;如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为 0。
Demo:
1 public static void main(String[] args) {
2 String str = " Hello World ";
3
4 //String trim():忽略字符串前导空白和尾部空白。
5 System.out.println(str.trim()); // Hello World
6
7 // boolean startswith测试此字符串是否以指定的前缀开始。
8 System.out.println(str.startsWith(" He")); // true
9 System.out.println(str.startsWith("he")); // false
10
11 // boolean endswith测试此字符串是否以指定的后缀结束。
12 System.out.println(str.endsWith("ld ")); // true
13 System.out.println(str.endsWith("ll")); // false
14
15 //
16 String str2 = "hello java";
17 //compareTo()字典顺序比较两个字符串。
18 System.out.println(str2.compareTo(str)); // 72
19 // compartToIgnoreCase()字典顺序比较两个字符串,忽略大小写
20 System.out.println(str2.compareToIgnoreCase(str)); // 72
21 }