学习目录
认识String类
在Java中 String 是属于引用数据类型
,用 String 类创建的变量不会存储字符串本身,而是存放字符串所在的地址
String 类的内容是使用用 “ ”
引用的,其" "
里的内容是属于常量
String 类是在 java.lang
包底下,里面包含了字符串的值和实现字符串相关操作的一些方法
String 类是不能被继承的,因为它是被 final
所修饰
在 String 类的源码里一个对象都有二个成员变量,分别是:value[ ]
和 hash
value[ ]
是一个数组类型
String类常用方法
String 类 提供的构造方法非常多,但常用的就下面三种:
public static void main(String[] args) {
// 使用常量字符串创建
String n = "hello";
System.out.println(n);
// 直接newString对象
String n2 = new String("abc");
System.out.println(n2);
//使用字符数组进行构造
char[] arr = {
'c','h','i','n','a'};
String n3 = new String(arr);//把字符数组装化成字符串
System.out.println(n3);
}
在 Java 求字符串长度是使用对象 . length()
例如:
System.out.println(n.length());
System.out.println("hello".length());
字符串对象的比较
字符串是属于引用类型,不能使用 ==
来判断是否相等
例如:
public static void main(String[] args) {
// 对于基本类型,可以使用 == 来判断二个变量是否相等
int a = 10;
int b = 10;
System.out.println(a == b);
// 对于引用类型变量,是不能使用 == 比较两个引用变量,它们比较的是地址,不是内容
String array1 = new String("hello");
String array2 = new String("hello");
String n = new String("world");
n = array1;
System.out.println(array1 == array2);
System.out.println(n == array1);
}
结果:
字符串比较是否相等:
比较相等是使用 equals
来比较内容
在 String类
里重写了父类Object中equals方法,Object
中的 equals
默认按照==
比较
String重写equals
方法后,按照内容
进行比较
public static void main(String[] args) {
String array1 = new String("hello");
String array2 = new String("hello");
System.out.println(array1.equals(array2));
}
字符串比较大小
比较二个字符串的大小使用的是compareTo
compareTo
的返回值是整数,需要用整形变量来接收
返回大于1
的数字代表 变量1 大于 变量2
返回0
代表 二个字符串相等
返回小于0
代表 变量1 小于 变量2
例如:
public static void main(String[] args) {
String s1 = new String("hello");
String s2 = new String("hello");
int ret = s1.