1. String 对象的创建
String对象的创建有两种方式。
第1 种方式就是我们最常见的创建字符串的方式:
String str1 = "8/24";
第 2 种方式是对象实例化的方式,使用new关键字,并将要创建的字符串作为构造参数:
String str2 = new String("8/25");
如果调用 String 类的无参构造方法,则会创建一个空字符串:
String str3 = new String();
这种方式很少使用。
2. 获取字符串长度
可以使用length()方法来获取字符串的长度。例如:
实例演示
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "8/24"; int a = str1.length(); System.out.println(a); } }
运行结果:
4
3. 字符串查找
3.1 获取指定位置字符
可以使用char charAt(int index)方法获取字符串指定位置的字符。它接收一个整型的index参数,指的是索引位置,那什么是索引位置呢?例如,有一字符串I love Java,其每个字符的索引如下图所示:
可以从图示中看出,索引下标从0开始。假如我们要获取字符C,则为方法传入参数2即可:
实例演示
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "ABCDEFG"; char a = str1.charAt(4); System.out.println(a); } }
运行结果:
E
3.2 查找字符串位置
这里介绍查找字符串位置的两个方法:
indexOf() 获取字符或子串在字符串中第一次出现的位置。
lasIndexOf() 获取字符或子串在字符串中最后一次出现的位置。
这里的子串指的就是字符串中的连续字符组成的子序列。例如,字符串Hello就是字符串Hello Java的子串。
indexOf()
1 获取字符在字符串中第一次出现的位置:
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "ABCDEFG"; int a = str1.indexOf('G'); System.out.println("字符A在字符串str1第一次出现的位置为:"+ a); } }
字符A在字符串str1第一次出现的位置为:6
2 获取子串在字符串中第一次出现的位置:
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "I just poor boy,I needn`t sympathy"; int a = str1.indexOf('I'); System.out.println("字串I在字符串str1第一次出现的位置为:"+ a); } }
字符I在字符串str1第一次出现的位置为:0
lastIndexOf()
1 获取字符在字符串中最后一次出现的位置:
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "I just poor boy,I needn`t sympathy"; int a = str1.lastIndexOf("I"); System.out.println("字串I在字符串str1最后一次出现的位置为:"+ a); } }
字串I在字符串str1最后一次出现的位置为:16
2 获取子串在字符串中最后一次出现的位置:
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "I love LYF and I love PYY"; int a = str1.lastIndexOf("I love"); System.out.println("子串I love在字符串str1最后一次出现的位置为:"+ a); } }
运行结果:
子串I love在字符串str1最后一次出现的位置为:15
需要特别注意的是,以上方法的参数都是区分大小写的。如果你找了个不存在的,上述方法都会返回一个整型值:-1。我们来看以下示例:
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "I love LYF and I love PYY"; int a = str1.lastIndexOf("QQ"); System.out.println("子串QQ在字符串str1最后一次出现的位置为:"+ a); } }
子串QQ在字符串str1最后一次出现的位置为:-1
可以看到结果是-1
4. 字符串截取
字符串的截取也称为获取子串
可以使用substring()方法来获取子串
String类中有两个重载的实例方法:
String substring(int beginIndex) 获取从beginIndex位置开始到结束的子串。
String substring(int beginIndex, int endIndex) 获取从beginIndex位置开始到endIndex位置的子串(不包含endIndex位置字符)
关于这两个方法的使用,我们来看一个实例:
实例演示
package com.caq.oop.demo08; public class Test { public static void main(String[] args) { String str1 = "I just poor boy,I need no sympathy"; String a = str1.substring(15); String b = str1.substring(8,12); System.out.println("从15到最后的字符串"+ a); System.out.println("从8到12的字符串"+ b); } }
运行结果:
从15到最后的字符串,I need no sympathy
从8到12的字符串oor
要特别注意,方法签名上有两个参数的substring(int beginIndex, int endIndex)方法
截取的子串不包含endIndex位置的字符。