Java的String类

String类

1.string类是一个之值不可以改变的常量,可以共享,字面值“abc”都是该值的对象。

2.string流程图:

 总结:

        ①对于有new的,相当于在方法区的字符串常量池中创建对象,并且只创建一份,共享。

        ②对于没有new的,相当于在堆中创建新对象,该对象中包含的字符序列,从字符串常量池中

            获取。

3.equals与==区别

        ①==用来判断数值是否相等,对于基本类型判断的是数值,对于引用类型来说判断的是地址

           是否相同。

        ②equals只能判断对象是否相等,不能判断基本数据类型。

                注意:如果想要根据需求进行判断,必须重写equals方法。

        ③对于object类中的equals方法,在没有重写的情况下效果和==相同。

4.字符对象创建细节问题

        对于字符串拼接形式,如果是字符串常量。在编译时直接计算这种现象称为字符串编译优化

5.字符串常用方法一

        ①charAt():返回索引位置的字符。

        ②compareTO():按字典顺序比较两个字符串。

                注意:存在字符序列不同,对象的Unicode码 - 参数的Unicode码

                           字符序列相同长度不同,对象的长度 - 参数的长度

                        ①  >0 对象才参数的后面

                        ② <0 对象在参数的前面

                        ③ == 对象与参数相等

         ③contains():判断是否包含

         ④equals():对象与参数字符序列相同返回true,判断对象与参数字符串是否相同。

         ⑤equalslgnoreCase():忽略大小写

        ⑥getBytes():字符串转字节数组。

                注意: 强制类型转换,无法实现字符串转字节数组

         ⑦endswith()/ startswith():后缀和前缀

         ⑧concat():拼接字符串

6.字符串常用方法二 

        ①isEmpty():判断是否为空

                注意:空格不为空 

        ②length():字符串长度

                注意:数组中的length是属性,不带(),字符串中的length()是方法,带()

        ③replace():替换所有

 

        ④split():根据参数拆分字符串,为字符串数组

                注意:如果使用转义\,两个表示一个\,如果做拆分4个表示一个\

        ⑤lastIndexOf():用法同indexOf返回参数字符串,在字符串对象中最后一次出现的索引值。

7.字符串常用方法三

        ①substring():截取字符串

                注意:如果只有一个参数,表示从该位置截取到最后。如果有两个参数,表示从第一个开始截取,到第二个位置的索引-1处结束。

                补充:空格也算一个

        ②toCharArray():字符串转字符数组

 

        ③toLowerCase()/ toUpperCase():转小写/转大写

        ④trim():返回字符串副本,忽略前部空白和后尾空白 

 StringBuffer和StringBulider

1.StringBuffer:线程安全的可变字符序列,类似与字符串中的一个字符缓冲区。

                        缓冲区:有富裕容量,作为临时存储区

2.StringBuffer:构造方法

        ①StringBuffer():不带字符的字符串缓冲区,初始容量16

        ②StringBuffer(int capacity):指明初始容量

        ③StringBuffer(String s):初始容量16 + 字符串长度

 3.常用方法一

        ①capacity():容量

        ②length():返回长度(字符数) 

         ③append():追加到末尾。        

        ④delete(int start, int end)/ deleteCharAT(int index):删除/根据索引删除

                注意:

                        ①(start,end],(获取不到end的值),end的值为end-1

                        ②对于字符串,一般都是副本,是新的字符串。而对于字符串缓冲器来说,

                            基本都是同一个

 

4.常用方法二

        ①insert(int offset, Object obj):插入    

         ②reverse():取反

                列如:判断对称字符串  abcba  → abcba

        ③toString():转换为字符串

         ④replace(int start, int end, String str):替换 (start,end]半开半闭区间

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值