public class StringDemo {
public static void main(String[] args) {
String s=new String();
String s1="";//两个一样,
String s3=new String("abc");
String s2="abc";//s1是一个类类型变量,"abc"是一个对象
//字符串最大特点:一但被初始化就不可以改变
s2="kk";//s2现在指向的地址为"kk"对象的地址
System.out.println(s2==s3);//false,比较地址
System.out.println(s2.equals(s3));//true,String 类重写了Object类中equals方法
/*s1和s2有什么区别?
s1在内存中有一个对象
s2在内存中有两个对象(字符串在内存中有个常量池,里面有字符串数组,
字符串由数组组成,"abc",把abc存到数组当中,"efg"把efg存到数组当中
当再存"abf"时,底层会把"a","b","f"找出来重新组装成一个对象
)*/
}
//字符数组组换成字符串
public static void method_trans(){
char [] arr={'a','b','c','d','e'};
String s1=new String(arr);
System.out.println(s1);//abcde
String s2=new String(arr,1,3);
System.out.println(s2);//bcd
String str="dfsdfsdf";
char[] t=str.toCharArray();
System.out.println(t[0]);//d
}
String ss="java";
String dd=ss.replace('a', 'n');//如果没有找到替换的,返回原串
System.out.println(ss);//java
System.out.println(dd);//jnvn
String vv=ss.replace("java", "world");
System.out.println(vv);//world
}
public static void method_sub(){
String s="asdfghhh";
System.out.println(s.substring(2));//从第2位到最后
System.out.println(s.substring(2,4));//包含头,不含尾
}