String类
1.Java所有类中,String是使用最多的一个类;
2.是有个final类,不允许被继承。表示字符串常量;
3.表示字符串常量;
4.他们的值在创建后不能改变;因为String对象是不可变的,所以可以共享他们。
5.不是java基本数据类型,是java.lang下提供的类
6.一个String对象的长度是固定的,不能改变它的内容或者附加新的字符串到String对象中。你也许会使用+来连接字符串达到附加新字符或字符串的目的。但会产生一个新的String实例。如果程序对这种附加字符串的需求很频繁,会消耗很大的资源。
7.String类型的字符串可以通过+将与它连接的类型的数据连接成字符串,并前后连接成新的字符串,但当多个数据连接时,则要从左到右看,也有可能将字符转换成ASSCIl码
String类型的构造方法:
String.length():获得字符串的长度
String.indexOf(n):查找字符串中的n字符
String.substring(n1,n2):对字符串从n1到n2进行截取(含头不含尾)
String.replace(“a”","b):将字符串中的a替换成b
举例:
String.toCharArray():字符串转字符数组
String.trim():去到字符串中的空格
String.compareTo():按字母顺序比较两个字符串。两个字符串相等返回0;字符串在该值之前返回值<0;字符串在该值之后, 返回值>0
String.charAt(n):提取字符串中n+1位置的字符(因为由0开始计数)
String.matches(a):字符串匹配,匹配a字符或字符串是否在String中。在返回true,不在返回false
字符串的赋值:
●String name = new String( ‘highcom’ ');
●String name =“highcom”;
这两种方式的区别:
第一种创建了新的内存空间,第二种引用了原来的内存地址,由"highom"取代原来的内容(在内存中new属于专属地址,没有new属于公共地址)
字符串池:
因为字符串是不可变的,java提供了一个字符串池(即String poll),用来提高同一个字符串的利用率。字符串池是堆中的一个特殊区域,专门用来储存String类型的字符串,每次使用字符串的字面值时,例如String s=“hello”,先去字符串池中查找,如果找到,返回这个对象的应用,如果找不到,在池中创建一个新的字符串,并返回此引用
StringBuffer类:
1.是一个可变字符序列
2.类似于String的字符缓冲区
3.线程安全
4.用于表达可以修改的字符串
StringBuffer的构造方法:
StringBuffer类的常用方法:
StringBuffer.append():在原有字符串的基础上进行添加
StringBuffer.delect(n1,n2):在原有字符串的指定位置上进行删除(从n1到n2-1)
StringBuffer.insert(n1,n2):在原有字符串的指定位置前进行插入(在n1前插入n2)
StringBuffer.reserve():将字符串进行翻转
StringBuffer.substring(n):从字符串的第n个位置开始到字符最后进行截取