String类的创建方式
String的特点
1.引用数据类型
2.是final类,一旦创建内容不可修改
3.String类对象相等的判断用equals()方法完成,==是判断地址数值
String的创建方式
1.直接创建
String str="hello";
注意:直接创建创建的字符串直接赋值在常量池中
2.创建对象方式
String str=new String("hello");
注意:创建对象方式,创建对象时首先看池中是否有相同值的字符串,如果有则拷贝一份到堆中,然后返回堆的地址;如果没有,则在堆中创建一份,然后返回堆的地址。
String类的存储原理
String str1="hello";
String str2="hello";
System.out.print("str1==str2");//true
String str3=new String("lishuo");
String str4=new String("lishuo");
System.out.print("str3==str4");//false
str1和str2是String直接创建,直接赋值在常量池中,==比较的是常量中的内存地址‘str3和str4是创建对象方式,比较的是堆中的地址。
String常用方法
1.charAt(int index) 返回指定索引的字符
String str1="hello li";
System.out.println(str1.charAt(0));//h
System.out.println(str1.charAt(3));//l
2.replace(char oldchar,char newchar) 用新字符替换旧字符
String str1="abc";
String str2=str1.replace(a,b);
System.out.println(str2);//bbc
3.**equals()**比较字符串的内容是否相同
重点:equals和==的区别
String中的equals比较的是字符串的内容是否相同
"=="比较基本数据类型时,比较的是值;比较引用数据类型时,比较的是地址值
String str1="hello";
String str2=new String("hello");
System.out.println(str1==str2);//false
System.out.println(str1.equals(str2));//true
4.String实现字符串反转
public static void main(String[] args){
System.out.println(reverse("abc"));
}
public static String reverse(String str){
String newstr="";
for(i=str.length-1;i>0;i--){
newstr+=str.charAt(i);
}
return newstr;
}
5.toLowerCase()转为小写
6.toUpperCase()转为大写
还有很多方法,但不常用,用时查询即可