1、第6章 字符串的处理,本章将通过实例,重点讲述字符串类和字符串类中各种各样的方法。字符串属于类,虽然在本章之前还未讲解类,但本章的关键主要学习如何处理字符串。字符串是在程序开发中,随时随地都能用到的对象型数据,处理好字符串数据,对于程序开发来说,是至关重要的。在程序不同的角落都会存在字符串处理的身影,例如,登录窗口的用户名和密码等等。,6.1 字符串的基本概念,提到字符串,读者一定不会陌生。在前面章节中,很多实例程序都有字符串的出现。先来看看下面的这段程序代码段。(具体内容请参照本书) 在两个双引号之间的数据就是字符串。 (具体内容请参照本书),6.2 字符串处理的类库种类,字符串处理类库使用
2、最多的是两种:“String”类和“StringBuffer”类。下面将详细讲述这两个类如何使用。,6.2.1 字符串的赋值,字符串类是处理字符串的类。“String”字符串与上一章学过的数组有一个共同点。就是它们被初始化后,长度是不变的,并且内容也不变。如果要改变它的值,就会产生一个新的字符串,如下所示:(具体内容请参照本书),6.2.2 字符串的处理类-String,字符串的声明非常简单,具体声明方法如下所示: 字符串类型 字符串名字符串内容 (具体内容请参照本书),6.2.3 字符串处理的方法,字符串类拥有很多针对字符串操作的方法。在这里主要讲述:串连接、提取子串、从字符串中分解字符、得
3、到字符串的长度、测试字符串是否相等、查找特定字符串、从基本类型转换成字符串等。 1串连接 2提取子字符串 3从字符串中分解字符 4得到字符串的长度 5测试字符串是否相等 6查找特定子串 7从基本类型转换成字符串 8toString方法,6.2.4 缓冲字符串处理类StringBuffer,前面介绍过,“String”类一旦声明初始化后,是固定不变的。如果要改变它,就必须重新申请空间,重新声明和初始化。Java类库中有一个类,可以解决上面的问题,那就是缓冲字符串类“StringBuffer”类。当创建StringBuffer类对象时,系统为对象分配的内存会自动扩展,以容纳新增的内容。针对“Str
4、ingBuffer”类创建对象时的构造器有两个,下面将详细的讲述。,6.2.5 缓冲字符串StringBuffer类的构造器,在这一小节中,将学习缓冲字符串类的构造器知识。通过学习对比StringBuffer类和String类的不同点和相同点。 1默认的构造器 2设定容量大小的构造器,6.2.6 缓冲字符串的处理,下面将学习StringBuffer类的一些主要方法。其实这些方法有很多与String类的方法很相似,通过学习可以比较。 1初始化字符串 2取字符串的单个字符 3单个字符串赋值 4指定位置插入字符串 5返回字符串的子串 6倒置字符串的内容,6.2.7 缓冲字符串类的特点,字符串是绝大多
5、数应用程序经常使用、且不可缺少的对象之一。由于缓冲字符串类有着比字符串类更加宽裕的空间,所以缓冲字符串可以用来处理一些动态字符串,而一般字符串类只能处理静态的不可变化的字符串。,6.3 用实例演示如何处理字符串,下面看一个实例,通过这个实例可以更熟练的处理字符串数据。有一个字符串处理要求,请看下面的要求: 有两个字节数组:I,a,m,a,b,o,y,以及h,e,i,s,a,b,o,y,请将它们以字符串形式输出。 用缓冲字符串类来输出上面的字符串。(具体内容请参照本书),6.4 如何格式化输出,程序员经常使用“System.out.println(x)”方法向输出台输出数据,这条命令会按照x的数
6、据类型,所允许的非零数字位的最大数字打印。下面通过例子进行演示。(具体内容请参照本书),6.5 常见疑难解答,(具体内容请参照本书),6.5.1 “equals”和“”的区别,答:如果操作两边都是对象句柄,就比较两个句柄是否指向同一个对象。如果两边是基本类型,比较的就是值。 “equals”比较的是两个对象的内容,如果不重载“equals”方法,自动调用object的“equalf”方法,则和“”样。在JDK中像“String”、“Integer”,默认重载了“equal”,则比较的是对象的内容。在实际编程中,建议读者使用“equals”方法。,6.5.2 String类为何被定义成final约束,答:主要是考虑“效率”和“安全性”的缘故。若“String”允许被继承,则其频繁的被使用,可能会降低程序的性能,所以“String”被定义成“final”。,6.5.3 char类型转换成int类型,整数int转换成字符串,(具体内容请参照本书),