文章目录
前言
本文主要对java中的String字符串类进行详细介绍,包括创建字符串、字符串比较、字符串查找以及字符串转换。
一、String类
在java中,String类表示字符串,属于对象。
1.创建字符串
(1)直接创建
String s = "hello";
(2)使用构造方法创建 String 对象
以下是不同构造方法举例:
//1.String(String Original),把字符串封装成字符串对象
String s1 = new String("hello world");
//2.String(char[] value),把字符数组封装成字符串对象
char[] c1 = {
'h','a','h','a','!'};
String s2 = new String(c1);
//String(char[] value,int index, int count)
//将index到count个字符数组值封装成字符串对象
char[] c2 = {
'h','a','h','a','!'};
String s3 = new String(c2,1,3);
2.以上两种方式创建的区别
(1)直接赋值创建: 该对象为方法区中的常量池中的字符串常量。
(2)通过构造方法创建: 该String对象存放在java虚拟机的堆内存中。即:堆内存里存放的是字符串常量的地址,字符串常量存放在方法区的常量池中。
例:
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("world");
String s3 = "hello";
String s4 = "hello";
System.out.println(s1==s2);
System.out.println(s3==s4);
}
运行结果:
图解如下:
注意: String类是final类,不能被继承,它的成员方法默认为final方法。
( 在Java中,被final修饰的类是不允许被继承的,并且该类中的成员方法都默认为final方法)
二、String对象的比较
在Java中共提供了4中方式进行字符串的比较
1.==比较
注意: 对于基本类型,== 比较的是变量中的值,对于引用类型 == 比较的是引用中的地址。
例1:
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
// 对于基本类型变量,==比较两个变量中存储的值是否相同
System.out.println(a == b); // false
System.out.println(