1.String
String类型的字符串一旦定义永不可变,如果再次赋值就是把这个字符串的地址值覆盖掉了重新赋值
定义方式:
//把字符串变成字符串
String s=new String("abc");
//把字节数组变成字符串
byte bye={97,98,99}; //a 97 A 65 0 48
String s2=new String(bye);
//把字符数组变成字符串
char c1={'a','b','c'};
String s3=new String(c1);
//常用格式
String s4="abc";
System.out.println(s1)//abc
System.out.println(s2)//abc
System.out.println(s3)//abc
System.out.println(s4)//abc
String和其他引用类型数据不同,有一个字符串常量池(在堆中),只要是双引号定义的字符串都在常量池里面,在内存中创建后不可更改,如果这个常量池已经有这个字符串,系统不会在创建新的字符串而是把这个在字符串常量池中的字符串的地址赋值给变量
常用方法:
==:在引用类型的比较是地址值,在基本类型比较的值
equals(字符串):比较引用类型的值,返回的结果是boolea型(如果两个数据类型不一样返回值一定是false)
length():字符串的长度,遍历数组的快捷键是数组名.lenghr().fori (String类型的数组的获取长度是length没有括号)
charAt(索引):返回字符串当前索引的元素
subString(索引begin,索引2end):截取字符串中包含索引1开始,不包含索引2结束的字符,如果只有一个索引值就是从当前索引截取到结尾
replace(旧字符串,新字符串):将当前元素的就字符串替换成新字符串;
split(字符串):按照字符串切割当且字符串,返回字符串数组
StringBuilder
字符串缓冲区,是可变的字符串,可以提高字符串的拼接效率
构造方法:
StringBuilder sb=new StringBuilder(字符串);
StringBuilder sb1=new StringBuilder();
方法:
append(字符串):在结尾添加任意类型的数据
toString():讲StringBuilder对象转换为String对象
不常用方法:
reverse():反转内容
lenghr():获取长度