初识String类和String类的拓展

        前言:以下是Java中String类的知识点与一些常见问题和注意事项,如有讲解不妥,请见谅!


目录

1.String类的创建及常见API

(1)String类的四种创建方式:

补充:字符串转化成字符数组 / 字节数组

(2)String类的常见API

2.字符串中的注意事项

 3.StringBuilder  和  StringBuffer  和  StringJoiner

StringBuilder

StringBuffer

 StringJoiner


1.String类的创建及常见API

        先大致了解一下有哪些知识:(如图)

初识String类和String类的拓展_第1张图片

(1)String类的四种创建方式:

1.直接创建:

2.通过对象创建:

3.将字符数组转变成字符串

初识String类和String类的拓展_第2张图片

4.将字节数组转变成字符串

        以上是String类的创建的四种方式,当然有人会问字符数组 / 字节数组可以转化成字符串,那么能不能把字符串转化成字符数组 / 字节数组呢?(当然可以!)

补充:字符串转化成字符数组 / 字节数组

1.字符串转化成字符数组:

初识String类和String类的拓展_第3张图片

2.字符串转化成字节数组:

注:字符串和字节数组的相互转化是ASCII码和字符的相互转换!

(2)String类的常见API

        可以大致看一下常见的API:(如图)

初识String类和String类的拓展_第4张图片

由于如果展开讲解篇幅会过长,详情可以浏览------------------->java中String类常用API-CSDN博客

2.字符串中的注意事项

        大致了解一些有什么:

初识String类和String类的拓展_第5张图片

(1)字符串在内存中储存的注意事项:

        在上面我们已经了解了字符串的创建有四种方式,其中有直接创建(第一种)和通过对象创建(第二种),那么它们有什么区别呢?

        ----直接创建:它是创建一个字符串常量并储存在字符串常量池中的(在堆区)(如图)

初识String类和String类的拓展_第6张图片

        ----通过对象创建的字符串:它是创建了一个字符串对象并存储在了堆区中(如图)

初识String类和String类的拓展_第7张图片

根据上面的两幅图片我们就可以知道直接创建(第一种)和通过对象创建(第二种)的区别了!

 3.StringBuilder  和  StringBuffer  和  StringJoiner

        先来看StringBuilder, 大致了解一些有什么:

初识String类和String类的拓展_第8张图片

StringBuilder

        (1)StringBuilder的介绍:

StringBuilder就是一个存放字符串的容器,你可以把字符串存储在这个容器中,然后通过API 或 其他方式对其中的字符串进行操作。

        (2)StringBuilder的常见API(以下的对象都为sb是因为官方也这么命名

1.append()  ----   作用:向这个容器中添加内容(加在最后)

初识String类和String类的拓展_第9张图片

注:如图可以看到我们可以添加所有基本类型,其实是append()将它们都进行了转化。

2.length()  ----  作用:求容器中的字符串长度

初识String类和String类的拓展_第10张图片

注:别忘记空格也算一个字符哦!

3.reverse()  ----  作用:将容器内的字符串反转

初识String类和String类的拓展_第11张图片

4.toString()  ----  作用:将容器里面的内容转变为字符串格式

从上面几个案例的结果我们是看不出来有什么区别的,但是注意的是,我们创造的对象的类型都是StringBuilder类型的,但是我们要把他变成字符串的格式才能更方便之后的使用。

初识String类和String类的拓展_第12张图片

StringBuffer

        再来看StringBuffer, 大致了解一些有什么:

初识String类和String类的拓展_第13张图片

        (1)StringBuffer的介绍:

StringBuffer就是一个存放字符串的容器,你可以把字符串存储在这个容器中,然后通过API 或 其他方式对其中的字符串进行操作。(其实和StringBuilder一样

它的用法和StringBuilder大差不差,所以也就不在再次解释了,主要讲解一下replace()和delete()

(1)replace()  ----  作业:更换对应的索引范围的内容

初识String类和String类的拓展_第14张图片

注:start索引是包含的,但是end索引是不包含的,及到end - 1的索引位置。

(2)delete()  ----作用:删除对应索引范围的内容

初识String类和String类的拓展_第15张图片

注:start索引是包含的,但是end索引是不包含的,及到end - 1的索引位置。

        当然StringBuilder 和 StringBuffer还有许多其他的常用API ,这里也就不举例了,有兴趣的朋友可以自己上网了解!

        那么有人会问了StringBuilder 和 StringBuffer这么相似,那有什么区别呢?区别还是有的,但是如今还不好解释(等你学习的更多了之后就会知道了,但是这里还是列举一下它们的不同)

        不同:StringBuffer几乎所有的方法都使用synchronized实现了同步,线程比较安全,在多线程系统中可以保证数据同步,但是效率比较低,而StringBuilder 没有实现同步,线程不安全,在多线程系统中不能使用 StringBuilder,但是效率比较高。
 

 StringJoiner

                最后来看StringJoiner, 大致了解一些有什么:

初识String类和String类的拓展_第16张图片

StringJoiner的作用:快速的连接添加到容器里面的内容。

        

        直接看案例吧!

初识String类和String类的拓展_第17张图片

注:在创建对象sj的时候括号里面第一个参数是连接符,第二个参数是开头字符,第三个参数是结尾字符(当然开头和结尾可以省略,只填连接符)

以上就是String有关的一些知识点,希望对你有帮助!!!


你可能感兴趣的:(java,开发语言,学习,后端)