<< Java >> String、StringBuffer、StringBuilder

🐖🐖🐖🐖如果喜欢!!🐂🐂🐂🐂

🐖🐖🐖🐖欢迎关注!!🐂🐂🐂🐂

🐖🐖🐖🐖持续回访!  !🐂🐂🐂🐂

CSDN主页:所有博客内容,Java大树逐渐成长

Gitee地址:想看博客代码??点击这里

QQ : 1939639916(有问题可以加好友,提前说明哦)


目录

一 .String类的构造方式

简单了解常量池

1. 创建的两种方式

2. 使用newString对象

3. 两种方式的特征区别

二. 常用方法

1. String四种比较区别

①通过 == 比较是否引用同一个对象,比如上图的引用

②boolean equal ( Object anObject ) 字典序比较

③int CompareTo (String S)  字典序比较

④ int compareToCase (String str)忽略大小写

2. charAt与indexOf

3. 转换

① 数值和字符串转换 -- String.valueOf 和 parse

②大小写转换toUpper -- toUpperCase和toLowerCase 

 ③字符串转换数组 -- toCharArray 和 new String 

④格式化 -- format

 4. 字符串替换 -- replace

5. 字符串拆分 -- split

6. 字符串的截取

 7.去掉字符串左右空格 -- trim

StringBuilder与StingBuffer



一、String类的构造方式

简单了解常量池

前提 :什么是常量池??

池是一种常见的提高效率的方式,常量池是池的一种,还有内存池、线程池.....

经常使用的字面类型比如 1,2,3,“hello”.....,为了是程序的运行速度更快,更节省内存,Java 8为8中基本数据类型和String都提供了常量池。

1. 创建的两种方式

//假如常量池没用这个字符串
String s1 = "I love you. ";
//1.在常量池没有找到这个常量
//2.在常量池中创建"I love you. "这个常量。
String s2 = "I love you. ";
//1.在常量池中要到了"I love you. "
//2.直接使用,不再创建

2. 使用newString对象

//假如常量池没用这个字符串
String s1 = new String("I love you. ");
//1.在堆中开辟一块内存,常量池没有找到这个字符串
//2.在常量池中创建"I love you. "这个常量,并且堆中的内存指向这个常量
String s2 = new String("I love you. ");
//1.在堆中开辟一块内存,常量池找到这个字符串,内存指向这个内存池的这个常量

3. 两种方式的特征区别

s1 == s2 ==s3;//s1和s2和s3引用的是同一个对象

s1 ! = s4;

s4 ! = s5;

s3.equal (s4)==true;

通过这些 要知道不同的方法创建一个字符串的过程是不同的,要详细清楚,两者的区别特点

二、常用方法

1. String四种比较区别

①通过 == 比较是否引用同一个对象,比如上图的引用

②boolean equal ( Object anObject ) 字典序比较

比较方法:先判断是否字符数是否相等,若相等按照字符大小顺序依次比较。

返回:boolean类型,只能判断是否相等

③int CompareTo (String S)  字典序比较

比较方法:先按照字典序比较,若出现不等字符,返回俩字符的大小差值,若k字符都相同(k较短字符串的字符长度)则返回字符串长度差值

返回:int 类型,相同返回 0 

④ int compareToCase (String str)忽略大小写

于③int CompareTo (String S) 相同,只不过忽略字符的大小写!

2. charAt与indexOf

①char charAt(int index)

功能:返回index位置上字符,如果index越界,抛出 IndexOutOfBoundsException 异常

② int indexOf(int ch)

功能:返回ch第一次出现的位置,没有ch返回-1

③int indexOf(int ch , int fromalndex)

功能:从fromalndex位置开始找ch第一次出现的位置,没有返回-1

④int indexOf(String str)

功能:返回str第一次出现的位置,没有返回-1

⑤int indexOf(String str ,int formalndex)

功能:从fromalndex位置开始找str第一次出现的位置,没有返回-1

⑥int lastIndexOf(int ch)

功能:从后往前找,返回ch第一次出现的位置,没有返回-1

⑦int lastIndexOf(int ch,int fromIndex)

功能:从formInedex位置开始,从后往前找ch第一次出现的位置,没有返回-1

⑧int lastIndexOf(String str)

功能:从后往前找,返回str第一次出现的位置,没有返回-1

⑨int lastIndexOf(String str,int formIndex)

功能:从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返回-1

3. 转换

① 数值和字符串转换 -- String.valueOf 和 parse

②大小写转换toUpper -- toUpperCase和toLowerCase 

 ③字符串转换数组 -- toCharArray 和 new String 

④格式化 -- format

 4. 字符串替换 -- replace

regex是需要替换的内容  replacemen是

① String replaceAll(String regex,String replacement)

功能:替换所有的指定内容

② String replaceFirst(String regex, String relacemen)

功能:替换首个内容 

 注意:不会修改对象,而是产生一个新的字符串

5. 字符串拆分 -- split

①String [ ] split(String regex)

功能:将字符串全部v

①String [ ] split(String regex,int limit)

功能:将字符串以指定的格式,拆分为 limit 组

注意:有些字符是部分转义,需要在前面加上  //

6. 字符串的截取

①String substring( int beginIndex)

功能:从指定索引截取到结尾

②String substring(int beginIndex,int endIndex)

功能:截取部分内容,左闭右开

 7.去掉字符串左右空格 -- trim

比如输入验证码就是一个应用场景

三. StringBuilder类

 

 我们可以看到,字符串拼接的时候,创建了一个新的StringBuilder类 

看下面代码,仔细看注释!!!!

    public static void main(String[] args) {//StringBuilder是一个类
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("hello");//stringBuilder内容变成hello
        stringBuilder.append("word!");//stringBuilder内容变成helloword!
        System.out.println(stringBuilder);打印结果为helloword! 


  
//如何将StringBulider类转换成String类,使用toString方法
        String str = stringBuilder.toString();
        System.out.println(str);//打印结果为helloword!   


//StringBuilder的有用的方法
    //1.逆置字符串
        System.out.println(stringBuilder.reverse());//打印结果为:!drowollhe
    }

 

三、StringBuilder与StringBuffer区别

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shn!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值