引言:字符串是 Java 中特殊的类,使用方法像一般的基本数据类型,被广泛应用在 Java 编程中。Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个 String 类来创建和操作字符串。
如何定义一个字符串
注意:字符串对象一旦被创建,其值是不能改变的,但可以使用其他变量重新赋值的方式进行更改。
/*方式一: 直接定义一个字符串,它首先会从常量池(String池)中寻找"Hello
world!";判断其是否存在,如果不存在,则将"Hello world!"放入常量池,并创
建一个句柄(或者引用地址),映射到这个常量池上;反之如果存在,则直接引用
该句柄。*/
String str = "Hello world!";
/*方式二: 通过new的方式定义一个对象并将其赋值给newstr;这个过程依然会从从常
量池(String池)中寻找"Hello world!";判断其是否存在,如果不存在,将会在
常量池放入"Hello world!"对象,同时会新增一个对象(new String)去引用该常
量的句柄,而new出的对象会在堆中申请一块内存,用于存储自身,两个对象同时对
应一个引用,之后才会将堆的对象传递给newstr;反之存在时,则之间往堆中创建一
个"Hello world!"的引用,并传递给newstr;*/
String newstr = new String("Hello world!");
字符串的常用方法
- 字符串拼接
字符串的拼接有两种方式:1.通过“+”拼接;2.通过concat()连接函数连接;如下:
public class Test01 {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "Word!";
String str3 = str1 + str2;
String str4 = str1.concat(str2);
System.out.println(str3);
System.out.println(str4);
}
}
运行结果如下:
- 获取字符串的长度
获取字符串的长度通过字符串.length()方法获取;如下:
public class Test01 {
public static void main(String[] args) {
String str1 = "Hello Word!";
System.out.println(str1.length());
}
}
运行结果如下:
- 字符串大小写转换
public class Test01 {
public static void main(String[] args) {
String str = "Hello Word!";
System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());
}
}
运行结果如下:
- 字符串去空格
public class Test01 {
public static void main(String[] args) {
String str = " Hello Word! ";
System.out.println(str.length());
System.out.println(str.trim().length());
}
}
运行结果如下:
5. 字符串截取
public class Test01 {
public static void main(String[] args) {
String str = "Hello Word!";
//从第5个字符开始截取
System.out.println(str.substring(5));
//从第0个字符截取到第5个字符
System.out.println(str.substring(0,5));
}
}
运行结果如下:
注意:字符串截取时beginindex的下标从0开始,endindex的下标从1开始。
- 字符串分割
public class Test01 {
public static void main(String[] args) {
String str = "Hello,Word!";
String[] arr = str.split(",");
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
运行结果如下:
-
- 字符串替换
public class Test01 {
public static void main(String[] args) {
String str = "Hello,Word!";
System.out.println(str.replace("Word", "世界"));
}
}
运行结果如下:
8. 字符串比较
public class Test01 {
public static void main(String[] args) {
String str = "Hello,Word!";
String newstr = "hello,word!";
//逐个地比较两个字符串的每个字符是否相同
System.out.println(str.equals(str));
//逐个地比较两个字符串的每个字符是否相同,不区分大小写
System.out.println(str.equalsIgnoreCase(newstr));
//比较两个对象是否相同
System.out.println(str==str);
//按字典顺序比较两个字符串的差,该比较是基于字符串各个字符的 Unicode 值
System.out.println(str.compareTo(newstr));
}
}
运行结果如下:
- 字符串查找
public class Test01 {
public static void main(String[] args) {
String str = "Hello,Word!";
String newstr = "Word!";
System.out.println(str.indexOf(newstr));
}
}
运行结果如下: