Java 初学者:String 类
(二)创建字符串
**方法一:**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 操作。对效率的影响很小。
三、获取字符串信息
=============
(一)获取字符串长度
实现方法:

评论