JAVA之String和StringBuffer

String

1. 构造方法

 * 字符串创建的常见的方法(4种构造方法,一种直接赋值)。

 *

 * 常见的构造方法:

 *public String():空构造

 *public String(String original):根据指定的字符串内容创建对象。

 *public String(char[] array):参数是一个字符数组,根据字符数组内容来创建一个字符串。

 *public String(char[] array, int offset, int count):根据字符数组的一部分内容来创建字符串。

 *           参数offset代表一个数组当中的起始索引,从0开始。

 *           参数count代表取用多少个字符。

 

注意:

   字符串对象在内存中一旦被创建,那么内容不可以被改变。

   字符串的内容不会发生改变,如果你觉得好像是变了,那一定是创建了新的字符串。

 

2。关于字符串池

 

 * 关于字符串池:

 * 1.字符串池是位于堆内存当中的一小块儿空间,用来保存若干个字符串的地址值。

 * 2.字符串池当中绝对不会出现重复的字符串对于的地址,保证字符串不重复。

 *(创建字符串常量时,首先检查字符串常量池是否存在该字符串,存在该字符串,返回引用实例,不存在,实例化该字符串并放入池中。)

 * 3.凡是直接双引号的字符串默认都在池中,而new出来的字符串默认不在池中。

 *

 * 关于==

 * 对于基本类型来说,==是进行数据内容的相同比较,对于引用内容来说==是进行地址值的相同比较。

 * 如果是两个对象,那么地址值必然不同,如果地址值相同,那么必然是一个对象。


 

3. 常用方法

* public boolean equals(Object obj): 进行字符串内容比较,严格区分大小写。参数obj就是另一个对象。

 *public boolean equalsIgnoreCase(String str): 进行字符串内容比较,忽略大小写。

* 字符串的基本操作:

 *public int length():返回字符串的长度

 *public char charAt(int index):返回字符串index位置的字符

 *public int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。

 *public int indexOf(String str):返回指定子字符串在此字符串中第一次出现处的索引。

 *public int indexOf(int ch, int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。

 *public int indexOf(String str, int fromIndex):返回指定子字符串在此字符串中从指定位置后第一次出现处的索引。

 *lastIndexOf   :从后向前找

* 字符串的转换操作:

 *public char[] toCharArray():把字符串转换为字符数组。

 *public static String valueOf(char[] chs):把字符数组转换成字符串。

 *public static String valueOf(int i):把int类型的数据转换成字符串。

 *String类的valueOf方法可以把任意类型的数据转换成字符串。

 *public String toLowerCase():把字符串转换成小写

 *public String toUpperCase():把字符串转换成大写

 *public String concat(String str):把字符串拼接。

* 字符串的替换操作:

 *public String replace(char old, char new):返回新字符串,用new字符替换原字符串old字符。

 *public String replace(CharSequence old, CharSequence new):返回新字符串,用new字符串替换原字符串old字符串。

 * 参数CharSequence是一个父接口,现阶段我们可以传String字符串。

 * 字符串去除空格:

 *public String trim():返回新字符串,去除原字符串首尾空格。

* 字符串的判断操作:

 *public boolean equals(Object obj):比较字符串的内容是否相同,区分大小写。

 *public boolean equalsIgnoreCase(Object obj):比较字符串的内容是否相同,不区分大小写。

 *public boolean contains(String str):判断字符串中是否包含指定的字符串。

 *public boolean startsWith(String str):判断字符串是否以某个指定的字符串开头。

 *public boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾。

 *public boolean isEmpty():判断字符串是否为空。

* 字符串的截取操作:

 *public String subString(int start):从指定位置开始截取字符串,默认到末尾。

 *public String subString(int start, int end):从指定位置开始到指定位置结束截取字符串。注意:截取的时候包含头,不包含尾。

* 字符串的分割操作:

 *public String[] split(String regex):将regex作为标记进行切割,返回切割之后的若干段字符串(字符串数组)。

 * 注意事项:

 * 1.现阶段强烈推荐不要使用英文句点作为分割的标记。因为英文句点在正则表达式中有特殊含义,而参数regex就是一个正则表达式。

 * 2.如果一定要使用英文句点,切割的标记应该使用"\\."(现阶段的固定写法)

 

StringBuffer

 

 * 两个常用的构造方法:

 *public StringBuffer():无参构造方法

 *public StringBuffer(String str):指定字符串内容的字符串缓冲区对象

 *

 * 添加操作:

 *public StringBuffer append(String str):把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身

 *public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

 *

 * 删除操作:

 *public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身

 *public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身

 *

 * 修改操作:

 *void setCharAt(int index, char ch): 修改指定index处的字符

 *

 * 替换操作:

 *public StringBuffer replace(int start,int end,String str):从start开始到end用str替换

 *

 * 反转操作:

 *public StringBuffer reverse():字符串反转。

 *

 * 截取操作:

 *public String substring(int start):从指定位置截取到末尾

 *public String substring(int start,int end):截取从指定位置开始到结束位置,包括开始位置,不包括结束位置

 * 注意:返回值是String类型。

 

 

StringBuffer和String的相互转换

 

 *StringBuffer和String的相互转换

 *String -- StringBuffer:

 * 1.通过构造方法

 * 2.通过append()方法

 *

 *StringBuffer -- String

 * 1.通过构造方法

 * 2.通过toString()方法

 * 3.通过subString(0,length);

 *

 StringBuffer和String的区别

 * 1.String类表示的字符串是常量,不可改变。StringBuffer表示字符容器,可变。

 * 2.在操作字符串时,如果该字符串仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类。

 * 3.String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法

 * 4.String类对象可以用操作符“+”进行连接,而StringBuffer类对象之间不能.StringBuffer对象连接可以使用append方法。

 附图:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值