




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java语言程序设计 第四章 数组、字符串、向量和哈希表 讲授人:傅晓阳 教授 上章回顾 n final,abstract与static 分别有什么用法 ? n 接口的作用是什么?完成一个“Animal”接 口,接口中有方法“sleep”与“prey”. n 定义一个浮点数x为15.8,定义一个字符变量 c为t; n 重载和覆盖的区别? n 类中的变量域与方法有几种访问说明符,分 别是什么,“两个类在不同的包中,一个类可 以访问另一个类中用protected修饰的方法 “,这句话对不对,为什么? 本章课程纲要 字符串 数组 本课程纲要 多维数组的用法 一维数组的用法 一维数组定义 数组 一维数组定义 n 数组变量的声明: n数组类型 数组变量; n例如: nint var ; nString str ; n 但在java编程中,比较常用的是将方括号放 在数组变量的前面。这比较适合一次声明多 个数组变量,例如: n double a, b, c, d; n 但如果采用第二种方式定义多个数组变量则 会出现错误,例如: n double a , b, c, d; 数组对象的创建 nnew 操作符 n 数据类型 数组变量=new 数据类型 数组长度 ; n int var = new int 5; n length var0 var1 var2 var3 var4 数组对象的创建 n数组初始化语句 n数据类型 数组变量名 = 数组元素1 ,数组元素2, ,数组元素n ; n例如: nint a=1,2,6,25,30; nchar c=j,a,v,a; 数组元素的访问 n 数组元素中存储了一组相同类型的数据,通过数 组下标来访问数组中的各个元素的。 n数组变量名 数组元素下标 na3, c2 n数组元素保存了数组中的一个数据值,对于 以上定义的数组,例如: na3=25; c2=v; 数组元素的访问 n 数组可以通过对数组元素的修改来改变数组的数 值。 na3=80; nc3=v; n通过对数组元素的更改,原数组将改变为: nint a=1,2,6,80,30; nchar c=j,a,v,v; 数组元素的访问 n 数组的数据元素的类型也可以是引用数据类型 nString , Student n 对于引用类型数组的数据单元进行赋值时,需要 使用new来创建一个新的对象,并将该对象的引 用赋值给数组变量 nStudent stu=new Student30; nstu0=new Student(“20080401”, “张三”); nString str=new String5; nstr0=new String(“java”); nstr1=new String(“hello”); 引用数组的声明与对象元素的赋值过程 本课程纲要 多维数组的用法 一维数组的用法 一维数组定义 数组 一维数组的用法 n 下面通过一个一维数组的实例来说明 n 该例题是解决一个数据排序的问题。 n 一维数组的声明 n/声明整型数组a,以及其他整型变量 nint a; n 创建对象 n/根据用户输入的数组长度,创建整型数组 na=new intarrayLength; 一维数组的用法 n 初始化数据 for(i=0;ia.length;i+) ai=Integer.parseInt( “10”); n 数组元素的使用 if(ajai) temp=ai; ai=aj; aj=temp; 本课程纲要 多维数组的用法 一维数组的用法 一维数组定义 数组 多维数组定义数组 n 多维数组的声明格式如下: n数据类型 数组变量; n数据类型 数组变量 ; n其中, 代表数组的维数。例如,声明一个 字符型的二维数组和整型的三维数组: n char c_array; n int tri_array; 多维数组创建数组对象 n (1)直接创建数组对象 n 直接创建数组对象的格式为: n数据类型 数组变量=new 数据类型 第n 维元素的个数 第n-1 维元素的个数第1 维元素的个数; 例如,创建一个三维整型数组: nint tri_array=new int23 5 ; 多维数组创建数组对象 n (2)逐次创建数组对象 n 多维数组也可以象一维数组那样创建对象,可以从 高维到低维逐次创建,其格式为: nnew 数据类型 第n 维元素的个数 ; nnew 数据类型 第n-1 维元素的个数 ; n nnew 数据类型 第1 维元素的个数; n 对于二维的字符型数组可以如下创建数组对象: nchar c_array; nc_array=new char2 ; nc_array0=new char3; 多维数组创建数组对象 n (3)初始化语句枚举数组对象。 n 初始化语句枚举数组对象类似于一维数组对象的初 始化过程,其格式为: n数组元素 变量名=数组元素i1,数组元 素i2数组元素im; n例如: nchar c_array=a,b,c,d,e; n参见实例4-2 weatherShow.java 本章课程纲要 字符串 数组 本课程纲要 变量字符串StringBuffer String字符串操作 常量字符串String 字符串 StringBuffer字符串修改操作 常量字符串String n创建字符串对象 n对于常量字符串的创建有两种方法: n(1)字符串直接量赋值方式; n(2)采用new运算符创建字符串对象方式 。 字符串直接量赋值方式 字符串池示意图字符串池示意图 字符串直接量赋值方式 字符串池存储方式示意图字符串池存储方式示意图 本课程纲要 变量字符串StringBuffer String字符串操作 常量字符串String 字符串 StringBuffer字符串修改操作 字符串数据类型的转换 n (1)基本类型转换为字符串类型 n 采用String类的成员方法valueOf( )。 nString str=String.valueOf(15); n 在java语言中,存在一个鼻祖类Object,它是任 何类的父类,该类中包含一个成员方法 npublic String toString( ) n 将整型类型的a(20)转换成字符串类型 str(“20”) nString str; nInteger a=new Integer(20); nStr=a.toString( ); 字符串数据类型的转换 n 将字符串类型的数据转换成基本数据类型,这可 以通过基本数据类型的封装类(参见前面章节的 关于封装类的说明)中的成员方法来实现字符串 向基本数据类型的转换。 n 将字符串“20”转换成整型20 nString str=“20”; nint plusA=Integer.parseInt(str); 字符串中字符的操作 n 计算字符串的长度 npublic int length( ) n 返回字符串对象中第(index+1)个字符 npublic char charAt(int index) n 返回参数ch指定的字符所在的最小下标索引值 npublic int indexOf(int ch) n 返回由参数ch指定的字符在当前字符串序列中的 最大下标索引值。 npublic int lastIndexOf(int ch) 字符串的拼接 n (1)使用String的成员方法 npublic String concat(String str) n该方法首先创建一个新的字符串对象序列,将参 数str字符串拼接到调用该方法的字符串对象的字 符串序列后面。在此,str字符串不允许为null。 n (2)使用“+”运算符 nString s=“java”+“1234”; nS字符串的值为“java1234” 字符串的拼接 n String s=5+5+“hello” nS=10hello n首先将+前面的整数10转换成字符串“10”,然后 将“hello”字符串拼接到“10”的后面,组成新的 字符串“10hello” n String s=“hello”+5+5 nS=hello55 n首先将加号右边的整数5转换成字符串“5”,然后 拼接到“hello5”的后面,得出最后结果“hello55” 字符串中字符替换和转换 n 字符串中字符替换 npublic String replace(char oldChar, char newChar) n 字符串大小写转换 npublic String toLowerCase( ) npublic String toUpperCase( ) n 截取字符子串 npublic String substring( int beginIndex) nPublic String substring(int beginIndex, int endIndex) 字符串之间的比较 n 比较字符串的四个成员方法 n public int compareTo(String otherString) n public int compareToIgnoreCase(String str) n public Boolean equals(Object obj) n public Boolean equalsIgnoreCase(Object obj) 字符串之间的比较 n “”与equals( )方法进行字符串比较时的主要 区别如下: n“”运算符进行字符串比较时,主要比较“ ”两边的字符串对象的引用值,即字符串所在内存 的地址,不管字符串内容是否相等,只要指向两 个字符串对象的引用值相等,“”运算符进行 比较的结果就是true; n equals( )方法进行字符串比较时,比较的是字符 串是否相等,而不管字符串对应的引用值是否相 等。因此,equals( )方法是真正适合进行字符串 比较的方法。 字符串之间的比较 n 计算b1、b2、b3、b4的值 n String s3=“hello“; nString s4=“hello“; nString s5=new String(“Hello“); nboolean b1=(s3 s4); nboolean b2=(s4 s5); nboolean b3=(s3.equals(s4); nboolean b4=(s4.equals(s5); 本课程纲要 变量字符串StringBuffer String字符串操作 常量字符串String 字符串 StringBuffer字符串修改操作 变量字符串StringBuffer n 变量字符串类java.lang.StringBuffer类创建的 字符串实例对象后,可以修改字符串中的字符序列。 n StringBuffer类具有一个缓冲区机制,即字符串的 长度也是可变的 n 这种缓冲机制可以很好的自动管理字符串的内存空间 ,提高了内存的利用率 n StringBuffer类具有以下几个重载构造方法: nPublic StringBuffer( ) nPublic StringBuffer(int capacity) nPublic StringBuffer(String str) 变量字符串StringBuffer n StringBuffer类中采用两个成员方法进行容量设 置 npublic int length( ) n 该方法返回字符串缓冲区长度。 npublic int capacity( ) n 该方法返回字符串缓冲区的容量。 n 确保最小缓冲容量的成员方法 npublic void ensureCapacity(int minCapacity) n 将字符串缓冲区的容量减少到等于字符串缓冲区的 长度 npublic void trimToSize( ) 变量字符串StringBuffer n StringBuffer类也同样具有与String类相类似 的以上成员方法 nPublic void setLength(int newLength) nPublic char charAt(int index) nPublic void setCharAt(int index, char ch) nPublic void indexOf(String str) nPublic void indexOf(String str,int fromIndex) nPublic int lastIndexOf(String str) nPublic int lastIndexOf(String str,int fromIndex) 本课程纲要 变量字符串StringBuffer String字符串操作 常量字符串String 字符串 StringBuffer字符串修改操作 StringBuffer字符串操作 n (1)字符串增加操作append nStringBuffer stb=new StringBuffer(“java program”); n stb.append(!); n (2)字符串插入操作insert nStringBuffer stb=new StringBuffer(“java program”); nstb.insert(0,“test”); StringBuffer字符串操作 n (3)删除字符串操作 npublic StringBuffer delete(int start, int end) nStringBuffer sb=new StringBuffer(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算机科学的伦理问题的试题及答案
- 学习软件设计师考试的五大法则试题及答案
- 网络管理员考试备考策略与试题及答案
- 网络管理员考试技巧与方法试题及答案
- 企业战略风险应对试题及答案
- 现代软件工程中的测试方法试题及答案
- 法律公开与透明度的提升方法试题及答案
- 法学概论考试的轻松上手技巧与试题及答案
- 2025届广东省梅州五华县联考七下数学期末质量检测试题含解析
- 黑龙江省齐齐哈尔市实验学校2025届八年级数学第二学期期末质量检测模拟试题含解析
- 【MOOC】理解马克思-南京大学 中国大学慕课MOOC答案
- JGT266-2011 泡沫混凝土标准规范
- 禾川x3系列伺服说明书
- 液化气站2022年应急预案演练计划
- 电缆井工程及电缆钢管敷设施工方案
- 各种面试方法详解
- 窄线宽光纤激光器研究俞本立
- 人教版六年级下册数学第五、六单元测试题及答案
- 常用H型钢理论重量表格
- 浙江省温州市2022年初中科学中考试题及参考答案
- 临检、免检、微检 知识点整理
评论
0/150
提交评论