015Java字符串的基本操作

字符串的基本操作

1 String及常见API

1.1String是不可变对象:由于在实际应用中,我们可能会频繁的使用一个字符串,因而把字符串设置为不可变对象,这样可以最大程度的利用相同内容的字符串以减少系统资源开销。

1.2String常量池:是指对字符串进行优化时,当我们用字面量、常量初始化一个字符串常量,jvm会优先在一个字符串常量池中(一个jvm维护的内存区域,用来存储直接用字面量、常量直接常见的对象(就是说不能new))查找是否有这个对象是否存在,若存在,直接引用。若不存在,则在字符串常量池中直接创建,然后引用它。

1.3内存编码及长度:Java中每存储一个字符都用两个字节,采用Unicode编码,每个字符的长度都为1,(包括中文),如一个中文代表一个字符,占用两个字节,代表一个长度。如图下:


长度为10

1.4使用indexOf实现字符串中检索另一个字符串或字符的位置,如图下


由上图得,给出了使用indexOf的一些基本方法,当在字符串中检索到了所需字符串,返回第一个元素的下标,当没有

检索到所需字符串时,返回-1.

1.5使用substring获取字串:substring用于获得一个字符串的子字符串,方法有以下几种:

      String substring(int begin,int end);指返回从下标begin开始,到下标end(不包括)结束的字符串

      String substring(int begin)指从下标begin开始,到字符串结束的字符串

      如图下:


有上图的,第一个从下标7开始,到字符串结束,因而输出结果为www.orcale.com

                  第二个从下标11开始,到下标17(不包括17)结束,因而输出结果为:orcale

1.6 trim指将字符串两边的空白给去掉,并将去除的字符串返还给我们


由上图可知:我们可以通过trim()方法去除字符串两边的字符

1.7  charAt:charAt()方法返回字符串指定位置的字符,用法如下:

      char charAt(int index)//只用来返回字符串指定位置的字符,index 代表指定位置的字符。如图下


由上图说明返回字符串中的每个字符

1.8startWith和endWith:用来检测一个字符串是否以指定开头或结尾,返回值为Boolean类型,如图下:


由上图得,当满足条件时,返回true

                  当不满足条件时,返回false

1.9大小写转换:指将字符串中的英文字母转换为大小写的形式,如图下:


由上图的,输出的结果为:

我喜欢JAVA

我喜欢java

1.10valueOf:指将其它类型转换为字符串类型,如图下


2   StringBuilder及其API

2.1StringBuilder封装可变字符串,对象创建后可以通过调用方法来改变其封装的字符序列

其构造方法为:public StringBuilder();

                         public StringBuilder(String str);

2.2StringBuilder的常用方法如图下:


2.3StringBuilder:StringBuilder的方法返回值均为StringBuilder类型,这些方法的返回语句均为:return this

     由于改变字符序列后又改变又返回该对象的引用,因此可以通过如下简洁方式:

     

2.4append方法:指将可变字符串追加字符串,如图下:


由上述代码可知:append是指将sb的末尾追加元素

2.5 insert:是指将指定位置添加字符串,如图下:


由上面代码可知,是将"php"(字符串)添加到下标为9的位置

2.6 delete删除指定位置的字符串,如图下:


上图sb的输出为:javacppc#php

2.7 replace:是指将指定的字符串添加到添加带指定位置,如图下


2.8 reverse:将指定的字符串反转,如图下:


2.9StringBuilder总结:StringBuilder是可变字符串,字符串的内容计算建议采用StringBuilder实现,这样性能会好一些

例如:字符串的连接其实是用StringBuilder实现:如图下


StringBuffer和StringBuilder的区别

StringBuffer:是线程的安全的,同步处理的,性能稍慢

StringBuilder:是非线程的,并发处理的,性能稍快


                       




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值