String类的相关应用

java.lang.String
字符串类,包含了字符串的值和实现字符串相关操作的一些方法。
其实字符串在java中的实现比较特殊,你可以不使用构造方法,就可以直接获得一个字符串对象。

String str1 = "test";//不使用构造方法
String str2 = new String("test");//使用构造方法

实际上以上两者的效果是相同的,就是创建了一个内容为"test"的字符串。

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

下面我们来说一下String类本身的特性。

首先需要注意到的是String是一个final类,所以你无法让自己写一个类来继承String的变量和方法。

String类的另一点特性是,一旦你创建了一个String类,那么它的值便无法再做更改了。虽然String类包

含substring()一类可以返回子字符串的方法,但实际上,这些方法并没有对原来的String类的内容做任

何修改,它们只是新建了另一个String类,并把它作为结果返回而已。这一点对程序设计产生的影响我们

在后面还会讨论到。

后一点特性是需要背过的,否则在后期的程序设计和程序优化过程中都可能会遇到问题。切记,切记。

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

简单介绍几个常用的方法。

public boolean equals(Object obj)
判断当前字符串与obj的内容是否相同
public boolean equals(String str)
判断当前字符串与str的内容是否相同,这个方法不会区分大小写字母的区别

public int length()
返回字符串的长度,即字符的总个数

public String trim()
去掉字符串两端的空白,包括“空格, ,
, 等控制符”

public String substring(int start,int end)
根据开始和结束的位置,返回当前String的子字符串
public String substring(int start)
从开始位置开始到字符串结束,返回子字符串

public char charAt(int index)
返回指定位置的字符

public int indexOf(String str)
返回子字符串在当前字符串的位置,如果当前字符串不包含子字符串就返回-1

public String concat(String str)
返回一个字符串,内容是当前字符串与str连接而成的。
字符串连接可以简化写为String str = str1 + str2;结果与concat方法相同

public boolean startsWith(String str)
判断当前字符串,是否以str开头
public boolean endsWith(String str)
判断当前字符串,是否以str结尾

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

String str = "I am " + "Lingo!";
这样可以获得一个内容为"I am Lingo!"的字符串,在java里可以通过这种简单的方式实现字符串的连接

。这里需要注意的是,这个过程实际上生成了三个String对象,"I am "和"Lingo!"先被生成,然后用他

们再创建一个String对象str,str的内容是两者的总和。所以,使用+进行字符串连接的时候会很耗费资

源,这个时候就需要使用另一个类StringBuffer,它的内容是可以修改的,实际上jvm内部编译之后,“

用+进行字符串连接”也是用StringBuffer实现的。

String str = "I am " + "Lingo!";
String str = new StringBuffer("I am ").append("Lingo!").toString();

上边两个是等价的。

StringBuffer类还提供了许多便利的方法,对字符串进行操作

public void reserve()
反转字符串

public void append(...)
在字符串最后添加信息

public void insert(int start,...)
在索引位置插入信息

public void delete(int start,int end)
删除指定范围的内容

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

最后谈一谈split与replaceAll方法

public String[] split(String regex)
根据分隔符,把字符串切割成字符串数组

public String replace(String regex,String str)
把字符串中所有与regex匹配的部分都替换成str

regex代表“正则表达式”,如果你并不清楚它的原理,很可能会出现问题。

"1,3,4".split(",")返回的结果是{"1","3","4"}这三个字符串组成的数组
"1|3|4".split("|")返回的结果却是{"1","|","3","|","4"}五个字符串组成的数组

这个问题的原因是由于在“正则表达式”中,“|”是一个有特殊含义的字符,表示“或”,直接使用

split("|")就会把每个字符分开了。如果希望使用"|"作为分隔符,就需要使用转义字符。

"1|3|4".split("/|")返回的结果就是{"1","3","4"}三个字符串组成的数组了
“|”是正则表达式中代表"|"的专一字符,但因为在String中“”不能单独出现,还需要进行一次转义

,就变成了“/|”这种形式。

replaceAll(String regex,String str)也是这种情况。

关于“正则表达式”更详细的用法,请参考java.util.regex包。

<script src="../../../js/ad_atl.js" type="text/javascript"></script>  

marginwidth="0" marginheight="0" src="/ad_tech.htm" frameborder="0" width="160" scrolling="no" height="600">


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值