07:字符串/String类
字符串/String类
字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。
一、创建字符串
一般情况下,可以直接创建字符串,具体格式如下:
String str = "hello word !";
在Java中可以用String类的构造方法来创建字符串变量,常用构造方法如下:
- 使用String()方法初始化一个新创建的String对象。
String str = new String();
- 使用String(char a[])方法创建String对象。
char a[] = {'h','e','l','l','o'};
String str = new String(a); //等价于String str = new String("hello");
- 使用String(char a[], int offset, int length)方法创建对象。
char a[] = {'s','t','u','d','e','n','t'};
String str = new String(a, 2, 4); //等价于 String s = new String("uden");
上述代码中,offset表示开始截取字符串的位置(从0开始),length表示截取长度。所以此例表示从数组a中下标为2的元素‘u’开始截取,截取长度为4,所以截取出的字符串为“uden”。
二、字符串的操作
1、连接字符串
- 当连接多个字符串时,在每两个连接的字符串之间用 “+” 操作符进行相连,“+”就是字符串的连接符,连接之后生成一个新的字符串。
- 当字符串和其他数据类型连接时,同样使用“+”连接符,连接之后的返回值是字符串。
例:
public class Demo01 {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = " Word !";
int i = 123;
//字符串与字符串之间的连接一般使用'+'操作符来连接进行
System.out.println(str1 + str2);
//字符串与其他类型数据之间的连接也是使用'+'操作符来连接进行
System.out.println(str1 + i);
}
}
同时,也可以对字符串常量使用 concat() 方法;该方法只能使用在字符串与字符串之间:具体代码如下:
String a = str1.concat(str2);
System.out.println(a);
2、获取字符串的信息
- 字符串的长度
使用String类的length()方法可以获取声明的字符串对象的长度。具体代码如下:
public class Demo02 {
public static void main(String[] args) {
String str1 = "Hello Word !";
//获取字符串的长度
System.out.println("str1的长度为:" + str1.length());
}
}
- 字符串的索引
当我们需要一个字符串的某一个字符时,需通过索引位置获取该字符。String类中提供了indexOf()和lastIndexOf()方法来获取指定字符的索引位置。区别在于,前者返回的是搜索的字符首次出现的位置的索引,后者返回的是搜索的字符最后出现位置的索引。
当然,我们还可以获取指定索引位置的字符,使用String类中的charAt()方法,返回字符的索引,具体代码如下:
public class Demo02 {
public static void main(String[] args) {
String str1 = "Hello Word !";
//获取字符串的长度
System.out.println("str1的长度为:" + str1.length());
// s首次出现的位置索引
System.out.println(str1.indexOf("o"));
// s最后一次出现的位置索引
System.out.println(str1.lastIndexOf("o"));
//获取指定索引位置的字符
char a = str1.charAt(9);
System.out.println(a);
}
}
三、字符串生成器
字符串生成器也即StringBuilder类,是字符串的一个重要的常用类。新创建的StringBuilder对象初始容量是16个字符,可以自行指定初始长度,也可以动态地执行添加、删除和插入等字符串的编辑操作,大大提高了频繁增加字符串的效率。
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
-
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
-
在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
-
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
-
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。
具体的方法请查询API文档。

浙公网安备 33010602011771号