本章目标
掌握String类的两种实例化方式
掌握String的两种比较操作
深入分析String类两种实例化方式的区别
掌握String的使用特点
实例化String对象
A、直接赋值
public class StringDemo01 {
public static void main(String[] args) {
String name = "chaoyi";//实例化 String 对象
System.out.println("姓名:"+name);//输出字符串的内容
}
/*结果:
* 姓名:chaoyi
* */
}
B、通过关键字new
public class StringDemo02 {
public static void main(String[] args) {
String name = new String("chaoyi");//实例化 String 对象
System.out.println("姓名:"+name);//输出字符串的内容
}
/*结果:
* 姓名:chaoyi
* */
}
String的比较方式
String的比较有两种方式:
——==:地址值比较
——equals()方法:内容比较
使用“==”比较
public class StringDemo04 {
public static void main(String[] args) {
String str1 = "Hello";//直接赋值
String str2 = new String("Hello");//通过 new 赋值
String str3 = str2;//传递引用
System.out.println("str1 == str2 -->"+(str1 == str2));//-->false
System.out.println("str1 == str3 -->"+(str1 == str3));//-->false
System.out.println("str2 == str3 -->"+(str2 == str3));//-->true
}
/*结果:
* str1 == str2 -->false
* str1 == str3 -->false
* str2 == str3 -->true
* */
}
使用equals()方法比较
public class StringDemo05 {
public static void main(String[] args) {
String str1 = "Hello";//直接赋值
String str2 = new String("Hello");//通过 new 赋值
String str3 = str2;//传递引用
System.out.println("str1.equals(str2) -->"+(str1.equals(str2)));//-->true
System.out.println("str1.equals(str3) -->"+(str1.equals(str3)));//-->true
System.out.println("str2.equals(str3) -->"+(str2.equals(str3)));//-->true
}
/*结果:
* str1.equals(str2) -->true
* str1.equals(str3) -->true
* str2.equals(str3) -->true
* */
}
一个字符串就是String的匿名对象
public class StringDemo06 {
public static void main(String[] args) {
System.out.println("\"Hello\".equals(\"Hello\") --> "+("Hello".equals("Hello")));
}
/*结果:
* "Hello".equals("Hello") --> true
* */
}
String类两种实例化方式的区别 —— 直接赋值
public class StringDemo07 {
public static void main(String[] args) {
String str1 = "Hello";//声明 3 个字符串变量,每个变量的内容都是一样的
String str2 = "Hello";//声明 3 个字符串变量,每个变量的内容都是一样的
String str3 = "Hello";//声明 3 个字符串变量,每个变量的内容都是一样的
System.out.println("str1 == str2 -->"+(str1 == str2));//-->true
System.out.println("str1 == str3 -->"+(str1 == str3));//-->true
System.out.println("str2 == str3 -->"+(str2 == str3));//-->true
}
/*结果:
* str1 == str2 -->true
* str1 == str3 -->true
* str2 == str3 -->true
* */
}
String类两种实例化方式的区别 —— 通过关键字new赋值
public class StringDemo08 {
public static void main(String[] args) {
String str = new String("Hello");//通过关键字 new 实例化
}
/*结果:
* */
}
字符串的内容一旦声明则不可改变
public class StringDemo09 {
public static void main(String[] args) {
String str = "Hello";//声明字符串
str = str + " Word!";//修改字符串
System.out.println("str = "+str);
}
/*结果:
* str = Hello Word!
* */
}
不正确的使用
public class StringDemo10 {
public static void main(String[] args) {
String str1 = "chaoyi";//声明字符串对象
for(int i = 0; i<10; i++){//循环修改内容
str1 +=i;//字符串引用不断改变
}
System.out.println(str1);
}
/*结果:
* chaoyi0123456789
* */
}