一、String概述
1、String 在java.lang包中,所以使用该类的时候不需要导包
2、String类 代表的是字符串,java中双引号引其的字符串都是String类的对象。
3、String类的特点 3.1 字符串不可变,它们的值在创建后不可以被更改(指的是字符串"abc"不能
通过运算改变,但字符串变量可以通过赋值改变)
3.2 虽然String的值不可更改,但是他们可以被共享
3.3 字符串效果上相当与字符数组(char[]),但是底层是字节数组(byte[])
二、构造方法
2.1 public String();
—— 创建一个空白字符串对象,不含任何内容
eg: String sc=new String();
System.out.print(sc); //输出的sc的值为 空
2.2 public String(char[] chs):;
——根据字符数组的内容,来创建字符串对象
eg:char[] chs={a,b,c}
String sc=new String(chs);
System.out.print(sc); //输出的sc的值为abc
2.3 public String(byte[] bys):
——根据字符数组的内容,来创建字符串对象
eg: byte[] chs={1,2,3}
String sc=new String(chs);
System.out.print(sc); //输出的sc的值为123
2.4 String s="abc" 直接赋值 ————推荐使用
三、字符串获得的特点
char[] chs={a,b,c}; //chs的地址为001
String s1=new String(chs); //创建对象 s1的地址为002
String s2=new String(chs); //s2 的地址为003
String s3="abc"; // s3=s4 的地址为004
String s4="abc";
四、字符串比较
做比较 : 基本类型——比较的是数据值是否相同
引用类型——比较的是地址值
equals() 比较字符串内容是否相同
——eg: s1.equals(s2) 表达式的值是true或false
五、字符串拼接
String a="adf";
a+="vb";
//输出a=adfvb,这里会在堆内存中产生三个数据,adf,vb,adfvb,赋值后a为adfvb,浪费了空间。
六、StringBuider
6.1 创建对象
StringBuider sb=new StringBuider(); 创建一个空的字符串变量sb;
StringBuider sb=new StringBuider(”HELLOWORLD“); 创建一个字符串并赋值
6.2添加数据
sb.append("adffg"); (返回的时对象本身)将adffg添加到sb字符串后面
相当于StringBuider as=sb.append(''adffg'');
eg: StringBuider sb=new StringBuider("123");
sb.append("asdf");
Systen.out.print(sb) //输出的值为 123asf
注: 链式编程 sb.append("aa").append("wer").append("gh");
6.3 反转数据
sb.reverse();将字符串sb里面的字符反转
eg:StringBuider sb=new StringBuider("123");
sb.reverse();
Systen.out.print(sb) //输出的值为 321
6.4 StringBuider与String相互转换;
6.4.1 StringBuider转换为String ——public String toString();
—— 通过toString()进行转换
eg:StringBuider sc=new StringBuider();
sc.append("hello");
String a=sc.toString();
6.4.2 String转换为StringBuider——public StringBuider(String s)
——通过构造方法进行转换
eg: String s="asdf";
StringBuider sc=new StringBuider(s);