版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 字符串的连接,5.1.1 String类型和字符数组的区别,上一章讲了数组的声明与初始化,在这儿我们就先定义一个字符数组“Hello World!”。 char charArray = new charH, e, l, l
2、, o, , W, o, r, l, d, !; 标准的字符型数组初始化就是上面这个样子。看上去觉得不是很直观,明明是连续的单词,被一些符号隔成了一个个字母。而且初始化这个字符数组也是很麻烦,还需要将这些字符用符号一个个标识出来。 其实用数组来处理一个字符串,初始化只是问题之一。在程序的实际应用中,经常会遇到连接两个字符串的情况。在前面章节的例子当中已经出现过了,如在例子Example2_1中,就有: System.out.println( circle1s radius: + circle1.getRadius() );,5.1.2 声明与创建String对象,声明一个String类型的变量
3、: String 字符串变量名; / 声明一个字符串变量 1创建String类的对象 String对象的声明过程,如图5.1所示。 图5.1 字符串声明与创建过程中的概念说明 2为对象赋值 声明对象之后就可以为它赋值,也就是让它指向一个创建好的实体。在这里向大家介绍一下“实体”这个概念。我们说过Java中的对象变量是一个引用,所谓的“实体”就是对象的引用所指向的那个内存存储区域。对象的变量名是一个指向此类型实体的引用,实体是真正存储对象数据内容的地方。实体也是一个对象,它也是由类创建而来,如图5.2所示。,图5.2 String对象的创建 3什么是对象、引用、实体 4字符串创建的实例 5字符串
4、变量名 = “abc”,如图5.3所示。 图5.3 两个String对象指向同一个实体,5.1.3 字符串的连接,Java中用“+”可以串联字符串,但这么做并不是一个效率很高的办法,原因在本章的最后面会作介绍。Java的String对象还提供了专门用来连接字符串的一个方法concat(),它也可以用来连接两个字符串。这个方法要比用“+”效率高些,先来看看它的用法吧: 新字符串 = 字符串1.concat(字符串2);,5.2 获取字符串的信息,5.2.1 求字符串的长度 5.2.2 判断字符串是否相等 5.2.3 字符串的比较 5.2.4 字符串的查找 5.2.5 取得子串与判断字符串的开头与
5、结尾,5.2.1 求字符串的长度,我们可以通过length属性来得到数组的长度。虽然Java中的字符串本质上也是个数组,但在这里却是用length()方法来得到字符串的长度。,5.2.2 判断字符串是否相等,判断字符串是否相等用equals()函数。而且相对而言,字符串的比较操作要比数组简单得多啦。它只有两个比较方法,分别用来区分大小写和不区分大小写: (1)equals( 目标字符串 );/调用String对象的equals()方法同目标字符串相比较,区分大小写 (2)equalsIgnoreCase( 目标字符串 );/不区分大小写的比较 这两个方法的作用都是比较两个字符串是否相等,如果相
6、等则返回布尔型的true,反之输出false。,5.2.3 字符串的比较,字符串的比较语法如下: (1)compareTo(目标字符串 )/调用String对象的compareTo ()方法同目标字符串相比较,区分大小写 (2)compareToIgnoreCase(目标字符串 ) /不区分大小写的比较 这个比较的过程我们用图来给大家说明一下,先看图5.7中的两个字符串比较的过程吧。 图5.7,图5.8为我们说明了字符串长度不等时的比较情况。 图5.8 两个字符串相比较长度不一致,5.2.4 字符串的查找,表5.1 字符串查找的方法及其用法,5.2.5 取得子串与判断字符串的开头与结尾,语法格
7、式: / 生成的子串从指定位置开始,直到字符串结束 substring( 起始索引位置 ); / 生成的子串从起始位置开始,到结束索引位置的前一个字符 substring( 起始索引位置, 结束索引位置 );,5.3 字符串的操作,5.3.1 分割字符串 5.3.2 大小写转换 5.3.3 删除两端空白字符 5.3.4 字符串的替换,5.3.1 分割字符串,语法格式: split( 分割字符串 ); / 根据指定的分割字符串来对原字符串进行分割 split( 分割字符串, 次数限制 ); / 根据指定的分割字符串对原字符串最多进行指定次数的分割 这个分割的过程可以用图5.9来说明。 图5.9,
8、5.3.2 大小写转换,先来认识一下Java中的这两个方法吧!它们分别是toLowerCase()和toUpperCase()。它们的转换的范围是字符串中所有的字符,这个方法并不提供指定范围的转换。 现在给大家举个例子,内容包括前一小节的字符串分割以及本小节的大小写转换。来看一下这个示例程序吧:,5.3.3 删除两端空白字符,删除两端空白字符的方法的名字叫做trim(),这个单词是“修剪”的意思。,5.3.4 字符串的替换,字符串的替换的语法如下: replace( 原字符, 新字符 ); / 替换字符串中的字符 replace( 原字符序列, 进行替换的字符序列 ); / 替换字符串中的所有
9、字符序列 replaceAll( 原字符串, 替换后的字符串 ); / 替换字符串中的所有子字符串 replaceFirst( 原字符串, 替换后的字符串 ); / 替换字符串中的第一个子字符串,5.4 字符串与其它类型的关系,5.4.1 对象及基本类型变量的字符串表示 5.4.2 字符串与基本数据类型的相互转换 5.4.3 格式化字符串 5.4.4 日期和时间的格式化字符串,5.4.1 对象及基本类型变量的字符串表示,对象及基本类型变量的字符串表示的方法如下: toString() / Java对象的方法,用字符串形式输出该对象的信息 valueOf( 基本类型变量 ) / String类的
10、方法,将变量的值转换为一个字符串。 图5.10和图5.11分别是这两个方法的演示。 图5.10 使用toString()方法得到对象的信息 图5.11 使用valueOf()方法得到基本类型变量的值,5.4.2 字符串与基本数据类型的相互转换,表5.2 字符串查找的方法及其用法,5.4.3 格式化字符串,Java为那些想用一种更漂亮的格式输出结果的同学提供了一个方法format():format( 格式字符串, 参数列表 ); 格式转换字符也有自己对应的格式,先给大家看一下它的语法: %参数序号$符号总长度.小数位数格式字符 图5.13 是部分格式转换字符的含义 图5.13,5.4.4 日期和
11、时间的格式化字符串,在Java中我们需要用一定格式输出的内容不只是数值和字符,像日期和时间这些量的格式化输出比数据更重要一些。先不说各国家地区以及语言的差异了,只是中国的日历和时间格式就有很多种。这些格式在Java当中都得到了较好地支持,,5.5 字符串与字符数组,5.5.1 字符串到字符数组 5.5.2 复制字符串中的字符到字符数组,5.5.1 字符串到字符数组,图5.14是从字符串到字符数组的转换过程,5.5.2 复制字符串中的字符到字符数组,语法如下: getChars( 起始索引位置, 结束索引位置, 字符数组名, 数组的起始下标 ); 图5.15 是转换字符串一部分到指定数组的过程
12、图5.15,5.6 StringBuffer和StringBuilder类,5.6.1 StringBuffer类的方法 5.6.2 StringBuffer类应用举例,5.6.1 StringBuffer类的方法,图5.16显示的是直接用加号连接两个字符串的情形。 图5.17表示的是使用StringBuffer对象改变字符串内容时的情况。StringBuffer中有一个保存字符的缓冲区,缓冲里面的内容可以由我们任意修改。 图5.16 图5.17,5.6.2 StringBuffer类应用举例,上一小节中我们对Java中的StringBuffer类作了介绍。它主要是用来在程序中动态地修改字符串,能够很有效率地变化字符串中的内容。介绍是看完了,下面来看一个StringBuffer的例子吧,,5.7 小结,在这一章里给大家介绍的内容比较多,几乎涉及到了跟字符串相关的所有内容。最开始向大家介绍String类,它同字符数组的区别以及如何声明并创建String的对象。String同字符数组的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年西安市灞桥区街道办人员招聘考试模拟试题及答案详解
- 2026年湖南省衡阳市街道办人员招聘笔试模拟试题及答案详解
- 2026年西安市阎良区中小学教师招聘笔试参考试题及答案详解
- 2025年本溪市明山区街道办人员招聘笔试试题及答案详解
- 2026年开封市龙亭区中小学教师招聘考试参考试题及答案详解
- 2026年营口市鲅鱼圈区中小学教师招聘考试备考题库及答案详解
- 2026年七台河市茄子河区街道办人员招聘考试参考试题及答案详解
- 2026年防城港市防城区法检系统书记员招聘考试模拟试题及答案详解
- 2026福建泉州市晋江市池店镇人民政府招聘专职消防队战斗员3人考试备考题库及答案详解
- 江西省吉安市井冈山市2027届数学四上期末调研模拟试题含解析
- 2026中国深远海漂浮式风电施工船舶改装技术方案与保险条款适配
- 2026年国企财务人员招聘笔试真题及答案
- 皮秒激光下硫系相变材料的相变机制与多阶光学性能解析
- 京东供应商协同平台(VC30)操作说明
- 设备保温施工专项施工方案
- 云南省2026年事业单位考试真题及答案
- 2026年高考全国二卷英语考试题目及答案
- 新一轮千亿斤粮食产能提升行动方案全文
- 骨质疏松治疗方案培训
- 2026内蒙古通辽市人民医院招聘备案制编制护理人员50人考试参考试题及答案解析
- 中草药采购管理制度
评论
0/150
提交评论