Java程序设计课件第四章数组字符串向量与哈希表.ppt

上传人:本田雅阁 文档编号:2201841 上传时间:2019-03-03 格式:PPT 页数:43 大小:560.51KB
返回 下载 相关 举报
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第1页
第1页 / 共43页
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第2页
第2页 / 共43页
Java程序设计课件第四章数组字符串向量与哈希表.ppt_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java程序设计课件第四章数组字符串向量与哈希表.ppt》由会员分享,可在线阅读,更多相关《Java程序设计课件第四章数组字符串向量与哈希表.ppt(43页珍藏版)》请在三一文库上搜索。

1、Java语言程序设计 第四章 数组、字符串、向量和哈希表,讲授人:傅晓阳 教授,,DavidFu,上章回顾,final,abstract与static 分别有什么用法? 接口的作用是什么?完成一个“Animal”接口,接口中有方法“sleep”与“prey”. 定义一个浮点数x为15.8,定义一个字符变量c为t; 重载和覆盖的区别? 类中的变量域与方法有几种访问说明符,分别是什么,“两个类在不同的包中,一个类可以访问另一个类中用protected修饰的方法“,这句话对不对,为什么?,,DavidFu,本章课程纲要,字符串,数组,,DavidFu,本课程纲要,多维数组的用法,一维数组的用法,一维

2、数组定义 ,数组,,DavidFu,一维数组定义,数组变量的声明: 数组类型 数组变量; 例如: int var ; String str ; 但在java编程中,比较常用的是将方括号放在数组变量的前面。这比较适合一次声明多个数组变量,例如: double a, b, c, d; 但如果采用第二种方式定义多个数组变量则会出现错误,例如: double a , b, c, d;,,DavidFu,数组对象的创建,new 操作符 数据类型 数组变量=new 数据类型 数组长度; int var = new int 5; length var0 var1 var2 var3 var4,,DavidF

3、u,数组对象的创建,数组初始化语句 数据类型 数组变量名 = 数组元素1,数组元素2, ,数组元素n ; 例如: int a=1,2,6,25,30; char c=j,a,v,a;,,DavidFu,数组元素的访问,数组元素中存储了一组相同类型的数据,通过数组下标来访问数组中的各个元素的。 数组变量名 数组元素下标 a3, c2 数组元素保存了数组中的一个数据值,对于以上定义的数组,例如: a3=25; c2=v;,,DavidFu,数组元素的访问,数组可以通过对数组元素的修改来改变数组的数值。 a3=80; c3=v; 通过对数组元素的更改,原数组将改变为: int a=1,2,6,80,

4、30; char c=j,a,v,v;,,DavidFu,数组元素的访问,数组的数据元素的类型也可以是引用数据类型 String , Student 对于引用类型数组的数据单元进行赋值时,需要使用new来创建一个新的对象,并将该对象的引用赋值给数组变量 Student stu=new Student30; stu0=new Student(“20080401”, “张三”); String str=new String5; str0=new String(“java”); str1=new String(“hello”);,,DavidFu,引用数组的声明与对象元素的赋值过程,,DavidFu

5、,本课程纲要,多维数组的用法,一维数组的用法,一维数组定义,数组,,DavidFu,一维数组的用法,下面通过一个一维数组的实例来说明 该例题是解决一个数据排序的问题。 一维数组的声明 /声明整型数组a,以及其他整型变量 int a; 创建对象 /根据用户输入的数组长度,创建整型数组 a=new intarrayLength;,,DavidFu,一维数组的用法,初始化数据 for(i=0;ia.length;i+) ai=Integer.parseInt( “10”); 数组元素的使用 if(ajai) temp=ai; ai=aj; aj=temp; ,,DavidFu,本课程纲要,多维数组的

6、用法,一维数组的用法,一维数组定义,数组,,DavidFu,多维数组定义数组,多维数组的声明格式如下: 数据类型 数组变量; 数据类型 数组变量 ; 其中, 代表数组的维数。例如,声明一个字符型的二维数组和整型的三维数组: char c_array; int tri_array;,,DavidFu,多维数组创建数组对象,(1)直接创建数组对象 直接创建数组对象的格式为: 数据类型 数组变量=new 数据类型 第n 维元素的个数 第n-1 维元素的个数第1 维元素的个数; 例如,创建一个三维整型数组: int tri_array=new int23 5 ;,,DavidFu,多维数组创建数组对象

7、,(2)逐次创建数组对象 多维数组也可以象一维数组那样创建对象,可以从高维到低维逐次创建,其格式为: new 数据类型 第n 维元素的个数 ; new 数据类型 第n-1 维元素的个数 ; new 数据类型 第1 维元素的个数; 对于二维的字符型数组可以如下创建数组对象: char c_array; c_array=new char2 ; c_array0=new char3;,,DavidFu,多维数组创建数组对象,(3)初始化语句枚举数组对象。 初始化语句枚举数组对象类似于一维数组对象的初始化过程,其格式为: 数组元素 变量名=数组元素i1,数组元素i2数组元素im; 例如: char c

8、_array=a,b,c,d,e; 参见实例4-2 weatherShow.java,,DavidFu,本章课程纲要,字符串,数组,,DavidFu,本课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,,DavidFu,常量字符串String,创建字符串对象 对于常量字符串的创建有两种方法: (1)字符串直接量赋值方式; (2)采用new运算符创建字符串对象方式。,,DavidFu,字符串直接量赋值方式,字符串池示意图,,DavidFu,字符串直接量赋值方式,字符串池存储方式示意图,,DavidFu,本

9、课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,,DavidFu,字符串数据类型的转换,(1)基本类型转换为字符串类型 采用String类的成员方法valueOf( )。 String str=String.valueOf(15); 在java语言中,存在一个鼻祖类Object,它是任何类的父类,该类中包含一个成员方法 public String toString( ) 将整型类型的a(20)转换成字符串类型str(“20”) String str; Integer a=new Integer(20)

10、; Str=a.toString( );,,DavidFu,字符串数据类型的转换,将字符串类型的数据转换成基本数据类型,这可以通过基本数据类型的封装类(参见前面章节的关于封装类的说明)中的成员方法来实现字符串向基本数据类型的转换。 将字符串“20”转换成整型20 String str=“20”; int plusA=Integer.parseInt(str);,,DavidFu,字符串中字符的操作,计算字符串的长度 public int length( ) 返回字符串对象中第(index+1)个字符 public char charAt(int index) 返回参数ch指定的字符所在的最小下

11、标索引值 public int indexOf(int ch) 返回由参数ch指定的字符在当前字符串序列中的最大下标索引值。 public int lastIndexOf(int ch),,DavidFu,字符串的拼接,(1)使用String的成员方法 public String concat(String str) 该方法首先创建一个新的字符串对象序列,将参数str字符串拼接到调用该方法的字符串对象的字符串序列后面。在此,str字符串不允许为null。 (2)使用“+”运算符 String s=“java”+“1234”; S字符串的值为“java1234”,,DavidFu,字符串的拼接,

12、String s=5+5+“hello” S=10hello 首先将+前面的整数10转换成字符串“10”,然后将“hello”字符串拼接到“10”的后面,组成新的字符串“10hello” String s=“hello”+5+5 S=hello55 首先将加号右边的整数5转换成字符串“5”,然后拼接到“hello5”的后面,得出最后结果“hello55”,,DavidFu,字符串中字符替换和转换,字符串中字符替换 public String replace(char oldChar, char newChar) 字符串大小写转换 public String toLowerCase( ) pub

13、lic String toUpperCase( ) 截取字符子串 public String substring( int beginIndex) Public String substring(int beginIndex, int endIndex),,DavidFu,字符串之间的比较,比较字符串的四个成员方法 public int compareTo(String otherString) public int compareToIgnoreCase(String str) public Boolean equals(Object obj) public Boolean equalsIg

14、noreCase(Object obj),,DavidFu,字符串之间的比较,“”与equals( )方法进行字符串比较时的主要区别如下: “”运算符进行字符串比较时,主要比较“”两边的字符串对象的引用值,即字符串所在内存的地址,不管字符串内容是否相等,只要指向两个字符串对象的引用值相等,“”运算符进行比较的结果就是true; equals( )方法进行字符串比较时,比较的是字符串是否相等,而不管字符串对应的引用值是否相等。因此,equals( )方法是真正适合进行字符串比较的方法。,,DavidFu,字符串之间的比较,计算b1、b2、b3、b4的值 String s3=“hello“; St

15、ring s4=“hello“; String s5=new String(“Hello“); boolean b1=(s3 s4); boolean b2=(s4 s5); boolean b3=(s3.equals(s4); boolean b4=(s4.equals(s5);,,DavidFu,本课程纲要,变量字符串StringBuffer ,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,,DavidFu,变量字符串StringBuffer,变量字符串类java.lang.StringBuffer类创建的字符串实例对象后,可以修改字符串中

16、的字符序列。 StringBuffer类具有一个缓冲区机制,即字符串的长度也是可变的 这种缓冲机制可以很好的自动管理字符串的内存空间,提高了内存的利用率 StringBuffer类具有以下几个重载构造方法: Public StringBuffer( ) Public StringBuffer(int capacity) Public StringBuffer(String str),,DavidFu,变量字符串StringBuffer,StringBuffer类中采用两个成员方法进行容量设置 public int length( ) 该方法返回字符串缓冲区长度。 public int capa

17、city( ) 该方法返回字符串缓冲区的容量。 确保最小缓冲容量的成员方法 public void ensureCapacity(int minCapacity) 将字符串缓冲区的容量减少到等于字符串缓冲区的长度 public void trimToSize( ),,DavidFu,变量字符串StringBuffer,StringBuffer类也同样具有与String类相类似的以上成员方法 Public void setLength(int newLength) Public char charAt(int index) Public void setCharAt(int index, cha

18、r ch) Public void indexOf(String str) Public void indexOf(String str,int fromIndex) Public int lastIndexOf(String str) Public int lastIndexOf(String str,int fromIndex),,DavidFu,本课程纲要,变量字符串StringBuffer,String字符串操作,常量字符串String,字符串,StringBuffer字符串修改操作,,DavidFu,StringBuffer字符串操作,(1)字符串增加操作append StringB

19、uffer stb=new StringBuffer(“java program”); stb.append(!); (2)字符串插入操作insert StringBuffer stb=new StringBuffer(“java program”); stb.insert(0,“test”);,,DavidFu,StringBuffer字符串操作,(3)删除字符串操作 public StringBuffer delete(int start, int end) StringBuffer sb=new StringBuffer(“java program”); Sb.delete(1,5); (4)删除字符串中的某个字符 public StringBuffer deleteCharAt(int index),,DavidFu,StringBuffer字符串操作,(5)替换字符串操作 public StringBuffer replace(int start, int end,String str) (6)字符串反转操作 public StringBuffer reverse( ) 通过例题4-4 TestStringBuffer,说明StringBuffer成员方法的用法,,第四章结束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1