写点什么

Java 初学者:String 类

  • 2022 年 5 月 16 日
  • 本文字数:1082 字

    阅读完需:约 4 分钟

(二)创建字符串




**方法一:**String(char a[])


char a1[]={'a','b','c'};


String s1=new String(a1);


**方法二:**String(char a[],int offset,int length)


//offset 表示开始截取字符串的位置,length 表示截取字符串的长度


**方法三:**String(char[] value)


char[] a3={'a','b','c','d','e','f'};


String s3=new String(a3);


二、连接字符串


===========


(一)连接字符串的方法




**方法一:**使用“+”连接



**方法二:**使用“concat”连接



**方法三:**使用“append”连接




运行之后发现后三种方法执行的时间较短,而第一种方法所花费的时间要远远多于后三种方法。


<table><tbody><tr><td><p align="center"><strong>+</strong></p></td><td><p align="center"><strong><span style="background:rgb(192,192,192)">concat</span></strong></p></td><td><p align="center"><strong><span style="background:rgb(192,192,192)">StringBuffer</span></strong></p></td><td><p align="center"><strong><span style="background:rgb(192,192,192)">StringBuilder</span></strong></p></td></tr><tr><td><p><strong>MidOfadd=10709</strong></p></td><td><p><strong>MidOfconcat=9</strong></p></td><td><p><strong>MidOfBuffer=8</strong></p></td><td><p><strong>MidOfBuilder=8</strong></p></td></tr></tbody></table>


(二)分析:




1、使用“+”连接字符串时,会调用 StringBuilder 的 append 方法,最终调用 toString 方法转换成字符串。但不足的是,每一趟循环都会创建一个 StringBuilder 对象,所以就耗费了较多的时间。


2、通过查看 concat 方法的源代码发现,原理是通过一个数组的拷贝,速度要优于上一种方法,但是最后的 return 语句返回一个新的 String 对象,所以每一次循环都会创建一个新的 String 对象,影响了字符串连接的效率


3、查看 append 方法的源代码发现,实现原理是字符数组的处理,整个方法实现的过程中没有生成新的对象,只是在最后返回一个 toString 对象,所以效率最高。


StringBuilder 和 StringBuffer 都拥有 append()方法.而二者不同之处在于,在做一次 append 操作的时候,StringBuffer 是线程安全的,因为做 append()操作的时候,在方法前增加了 synchronized 操作。对效率的影响很小。


三、获取字符串信息


=============


(一)获取字符串长度



实现方法:

![](https://img-blog.csdn.net/20160706101054365?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 /font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
Java初学者:String类_程序员_爱好编程进阶_InfoQ写作社区