首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:资料 参考手册 服务器
 → 当前位置:首页>编程开发>java>Java基础>正文

J2SE综合--浅谈 String 类的相关应用

OKLinux www.oklinux.cn 2008-01-28 来源:赛迪网 xyz20003 会员收藏 游客收藏

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 equalsIgnoreCase(String str)
判断当前字符串与str的内容是否相同,这个方法不会区分大小写字母的区别

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

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

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 reverse()
反转字符串

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)也是这种情况。

上一篇:JSP/Servlet:J2EE开发环境配置个人总结   下一篇:EJB 最佳实践--工业强度的 JNDI 优化

收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·JSP/Servlet:J2EE开发环境配置个人总结
·EJB 最佳实践--工业强度的 JNDI 优化
·JSP/Servlet:EasyJWeb中文件上传的处理
·J2EE综合--选择应用服务器的七个标准
·J2SE综合--怎样取得class文件的路径
·Java语言深入--java调用C/C 的过程
·Java 理论和实践:用软引用阻止内存泄漏
·初始化引发的"StackOverflowError" 异常
·接口与抽象类的深层理解
·Java入门:java语言中创建和使用日期
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·使用AJAX技术实现网页无闪
·快速教您Apache Tomcat
·详细讲解Struts构架中acti
·对于JSP中表单数据存储的
·在JSP环境中配置使用fcked
·Hibernate配置文件中的映
·用JSP JavaScript打造二级
·高级:运用Jakarta Struts
·J2EE综合--总结java编程中
·J2EE综合--浅谈Java程序员
最新文章
·EJB 最佳实践--工业强度
·JSP/Servlet:J2EE开发环境
·JSP/Servlet:EasyJWeb中
·J2EE综合--选择应用服务器
·J2SE综合--怎样取得class
·Java语言深入--java调用
·Java 理论和实践:用软引用
·初始化引发的"StackOverfl
·接口与抽象类的深层理解
·Java入门:java语言中创建
·Java怎样调用外部应用程序
·J2EE综合--浅谈Java程序员
·关于角色访问控制(RBAC)
·J2SE综合--为什么Java中继
·进阶-Java Web中的入侵检

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有