Java初学者:String类

本文阅读 3 分钟
首页 代码,Java 正文

在java语言中将字符串作为对象来处理,String类的对象表示由多个字符连接而成的字符串

(一)字符串的声明

String s="abc";

注意声明字符串变量必须经过初始化之后才可以使用

(二)创建字符串

方法一: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);

(一)连接字符串的方法

方法一:使用“+”连接

 img

方法二:使用“concat”连接

 img

方法三:使用“append”连接

 imgimg

 

 

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

(二)分析:

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

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

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

 

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

 

(一)获取字符串长度

实现方法:

 img

输出结果为:size=16

可见length()方法返回的字符串的长度包含字符串中的空格。

(二)字符串查找

String类提供了两种查找字符串的方法,即indexOf()、lastIndexOf()方法。其中indexOf()方法返回的是要搜索的字符(串)首次出现的位置;lastIndexOf()方法返回的是要搜索的字符(串)最后出现的位置,如果没有检索到该字符串,该方法返回-1。

 

实例:

int index=s1.indexOf('o');

System.out.println("index="+index);

输出结果:index=5

 

在计算机中String对象是用数组表示的

 

 img

 

(三)获取指定索引位置的字符

String s1="hnu tongxin 1501";

char ch = s1.charAt(4);

System.out.println("s1.charAt(4)="+ch);

 

输出结果:

s1.charAt(4)=t

说明指定位置处的字符不包含空格

 

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://wangjiawei.blog.csdn.net/article/details/51836852
-- 展开阅读全文 --
安全面试之XSS(跨站脚本攻击)
« 上一篇 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复