《《字符大派对》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《字符大派对》PPT课件.ppt(31页珍藏版)》请在三一办公上搜索。
1、第5章 字符大派对字符串,5.1 认识String类5.2 获取字符串的信息5.3 字符串的操作5.4 字符串与其它类型的关系5.5 字符串与字符数组5.6 StringBuffer和StringBuilder类5.7 小结5.8 习题,5.1 认识String类,5.1.1 String类型和字符数组的区别5.1.2 声明与创建String对象5.1.3 字符串的连接,String类型和字符数组的区别,上一章讲了数组的声明与初始化,在这儿我们就先定义一个字符数组“Hello World!”。char charArray=new charH,e,l,l,o,W,o,r,l,d,!;标准的字符型
2、数组初始化就是上面这个样子。看上去觉得不是很直观,明明是连续的单词,被一些符号隔成了一个个字母。而且初始化这个字符数组也是很麻烦,还需要将这些字符用符号一个个标识出来。其实用数组来处理一个字符串,初始化只是问题之一。在程序的实际应用中,经常会遇到连接两个字符串的情况。在前面章节的例子当中已经出现过了,如在例子Example2_1中,就有:System.out.println(circle1s radius:+circle1.getRadius();,5.1.2 声明与创建String对象,声明一个String类型的变量:String 字符串变量名;/声明一个字符串变量1创建String类的对象
3、String对象的声明过程,如图5.1所示。图5.1 字符串声明与创建过程中的概念说明2为对象赋值 声明对象之后就可以为它赋值,也就是让它指向一个创建好的实体。在这里向大家介绍一下“实体”这个概念。我们说过Java中的对象变量是一个引用,所谓的“实体”就是对象的引用所指向的那个内存存储区域。对象的变量名是一个指向此类型实体的引用,实体是真正存储对象数据内容的地方。实体也是一个对象,它也是由类创建而来,如图5.2所示。,图5.2 String对象的创建3什么是对象、引用、实体4字符串创建的实例5字符串变量名=“abc”,如图5.3所示。图5.3 两个String对象指向同一个实体,字符串的连接,
4、Java中用“+”可以串联字符串,但这么做并不是一个效率很高的办法,原因在本章的最后面会作介绍。Java的String对象还提供了专门用来连接字符串的一个方法concat(),它也可以用来连接两个字符串。这个方法要比用“+”效率高些,先来看看它的用法吧:新字符串=字符串1.concat(字符串2);,5.2 获取字符串的信息,5.2.1 求字符串的长度5.2.2 判断字符串是否相等5.2.3 字符串的比较5.2.4 字符串的查找5.2.5 取得子串与判断字符串的开头与结尾,求字符串的长度,我们可以通过length属性来得到数组的长度。虽然Java中的字符串本质上也是个数组,但在这里却是用len
5、gth()方法来得到字符串的长度。,5.2.2 判断字符串是否相等,判断字符串是否相等用equals()函数。而且相对而言,字符串的比较操作要比数组简单得多啦。它只有两个比较方法,分别用来区分大小写和不区分大小写:(1)equals(目标字符串);/调用String对象的equals()方法同目标字符串相比较,区分大小写(2)equalsIgnoreCase(目标字符串);/不区分大小写的比较这两个方法的作用都是比较两个字符串是否相等,如果相等则返回布尔型的true,反之输出false。,字符串的比较,字符串的比较语法如下:(1)compareTo(目标字符串)/调用String对象的comp
6、areTo()方法同目标字符串相比较,区分大小写(2)compareToIgnoreCase(目标字符串)/不区分大小写的比较这个比较的过程我们用图来给大家说明一下,先看图5.7中的两个字符串比较的过程吧。图5.7,图5.8为我们说明了字符串长度不等时的比较情况。图5.8 两个字符串相比较长度不一致,字符串的查找,表5.1 字符串查找的方法及其用法,5.2.5 取得子串与判断字符串的开头与结尾,语法格式:/生成的子串从指定位置开始,直到字符串结束substring(起始索引位置);/生成的子串从起始位置开始,到结束索引位置的前一个字符substring(起始索引位置,结束索引位置);,5.3
7、字符串的操作,5.3.1 分割字符串5.3.2 大小写转换5.3.3 删除两端空白字符5.3.4 字符串的替换,分割字符串,语法格式:split(分割字符串);/根据指定的分割字符串来对原字符串进行分割split(分割字符串,次数限制);/根据指定的分割字符串对原字符串最多进行指定次数的分割这个分割的过程可以用图5.9来说明。图5.9,大小写转换,先来认识一下Java中的这两个方法吧!它们分别是toLowerCase()和toUpperCase()。它们的转换的范围是字符串中所有的字符,这个方法并不提供指定范围的转换。现在给大家举个例子,内容包括前一小节的字符串分割以及本小节的大小写转换。来看
8、一下这个示例程序吧:,5.3.3 删除两端空白字符,删除两端空白字符的方法的名字叫做trim(),这个单词是“修剪”的意思。,字符串的替换,字符串的替换的语法如下:replace(原字符,新字符);/替换字符串中的字符replace(原字符序列,进行替换的字符序列);/替换字符串中的所有字符序列replaceAll(原字符串,替换后的字符串);/替换字符串中的所有子字符串replaceFirst(原字符串,替换后的字符串);/替换字符串中的第一个子字符串,5.4 字符串与其它类型的关系,5.4.1 对象及基本类型变量的字符串表示5.4.2 字符串与基本数据类型的相互转换5.4.3 格式化字符串
9、5.4.4 日期和时间的格式化字符串,对象及基本类型变量的字符串表示,对象及基本类型变量的字符串表示的方法如下:toString()/Java对象的方法,用字符串形式输出该对象的信息valueOf(基本类型变量)/String类的方法,将变量的值转换为一个字符串。图5.10和图5.11分别是这两个方法的演示。图5.10 使用toString()方法得到对象的信息 图5.11 使用valueOf()方法得到基本类型变量的值,字符串与基本数据类型的相互转换,表5.2 字符串查找的方法及其用法,5.4.3 格式化字符串,Java为那些想用一种更漂亮的格式输出结果的同学提供了一个方法format():
10、format(格式字符串,参数列表);格式转换字符也有自己对应的格式,先给大家看一下它的语法:%参数序号$符号总长度.小数位数格式字符图5.13 是部分格式转换字符的含义 图5.13,日期和时间的格式化字符串,在Java中我们需要用一定格式输出的内容不只是数值和字符,像日期和时间这些量的格式化输出比数据更重要一些。先不说各国家地区以及语言的差异了,只是中国的日历和时间格式就有很多种。这些格式在Java当中都得到了较好地支持,,5.5 字符串与字符数组,5.5.1 字符串到字符数组5.5.2 复制字符串中的字符到字符数组,字符串到字符数组,图5.14是从字符串到字符数组的转换过程,复制字符串中的
11、字符到字符数组,语法如下:getChars(起始索引位置,结束索引位置,字符数组名,数组的起始下标);图5.15 是转换字符串一部分到指定数组的过程 图5.15,5.6 StringBuffer和StringBuilder类,5.6.1 StringBuffer类的方法5.6.2 StringBuffer类应用举例,StringBuffer类的方法,图5.16显示的是直接用加号连接两个字符串的情形。图5.17表示的是使用StringBuffer对象改变字符串内容时的情况。StringBuffer中有一个保存字符的缓冲区,缓冲里面的内容可以由我们任意修改。图5.16 图5.17,5.6.2 St
12、ringBuffer类应用举例,上一小节中我们对Java中的StringBuffer类作了介绍。它主要是用来在程序中动态地修改字符串,能够很有效率地变化字符串中的内容。介绍是看完了,下面来看一个StringBuffer的例子吧,,5.7 小结,在这一章里给大家介绍的内容比较多,几乎涉及到了跟字符串相关的所有内容。最开始向大家介绍String类,它同字符数组的区别以及如何声明并创建String的对象。String同字符数组的一个最大的区别就是它的内容是在创建之后就不能再被改变。在需要比较频繁地修改字符串中内容的时候,需要使用专门用来对字符串进行修改的类StringBuffer和StringBuilder类。这两个类的功能及作用大同小异,只需要了解其中一个就可以了。,5.8 习题,【习题1】String与StringBuffer有什么区别?【习题2】String是基本数据类型吗?【习题3】假设已经定义了变量,