第04章 数组、字符串与例外处理课件_第1页
第04章 数组、字符串与例外处理课件_第2页
第04章 数组、字符串与例外处理课件_第3页
第04章 数组、字符串与例外处理课件_第4页
第04章 数组、字符串与例外处理课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第04章数组、字符串与例外处理1

数组、字符串与例外处理第04章数组、字符串与例外处理2本章总体纲要数组字符串例外处理第04章数组、字符串与例外处理3数组由相同类型的若干项数据组成例如:publicstaticvoidmain(Stringargs[])其中args是String类型的数组占用连续的内存地址数组的静态性一旦创建就不能修改数组的长度类似于动态数组的类型类Vector长度可以变大或缩小第04章数组、字符串与例外处理4实例int[]c=new

int[12];c

是数组名如何获得数组的长度?c.length第一个数组元素的下标为0

使用数组可以通过数组名与下标每个数组元素类似于普通的变量c[0]=3;c[0]+=5;-4560721543-89062-3164537812c[1]c[2]c[4]c[3]c[5]c[6]c[7]c[8]c[9]c[10]c[11]c[0]c.length第04章数组、字符串与例外处理5下标有时也称为索引必须是整数或整数表达式,例如:c[11]实例:含有运算符的下标表达式:

if(x==3) t=(c[5-2]==c[3])&&(c[x]==c[3]);//t=true第04章数组、字符串与例外处理6数组声明一维数组变量的声明格式有如下两种:(1) 数组元素的数据类型[]变量名;(2) 数组元素的数据类型变量名[];实例:int[]c;String[]names;intc[];Stringnames[];第04章数组、字符串与例外处理7初始化数组基本数据类型的元素初始化为0值或false非基本数据类型的元素初始化为null

可以采用循环结构初始化数组实例:double[]squares;squares=newdouble[100];for(inti=0;i<squares.length;i++){squares[i]=i*i;}第04章数组、字符串与例外处理8通过初始化语句创建数组Java语言允许通过数组的初始化语句创建数组实例:int[]n={10,20,30,40,50};上面语句创建了一个含有五个元素的数组下标值分别为0,1,2,3,4这时不需要运算符new第04章数组、字符串与例外处理9注意事项当通过循环遍历数组时下标永远不要低于0下标永远要比数组元素个数小当数组下标出错,Java产生ArrayIndexOutOfBoundsException第04章数组、字符串与例外处理10本章总体纲要数组字符串例外处理第04章数组、字符串与例外处理11String的基本知识String与C语言不同:字符(char)数组不是字符串(String)StringaStringbStringcHelloWorld!第04章数组、字符串与例外处理12String直接量String直接量双引号括起来的字符序列实例:“John”

或"111222333"字符串赋值可以在声明时赋值

String

color="blue";color

是String类型的引用“blue”String直接量第04章数组、字符串与例外处理13String构造方法类String共有11个构造方法参见docs\index.html第04章数组、字符串与例外处理14其他数据类型如何转换成String类型?基本数据类型

StringString.valueOf(基本数据类型数据);如: doubled=0.12;Strings=String.valueOf(d);引用数据类型

String引用数据类型数据.toString();如:

Integeri=newInteger(100); Strings=i.toString();第04章数组、字符串与例外处理15常用的数据转换StringintStrings=“100”;inti=Integer.parseInt(s);StringfloatStrings=“100”;floati=Float.parseFloat(s);StringdoubleStrings=“100”;doublei=Double.parseDouble(s);第04章数组、字符串与例外处理16String方法:

length(),charAt()和getChars()方法length()返回String

的长度与数组不同之处:String不含有length成员域方法charAt(intindex)获得字符串指定位置的字符方法getChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)

拷贝字符串的部分字符序列

到指定的字符数组的指定位置第04章数组、字符串与例外处理17字符串内容的比较比较字符串的内容是否相同:publicbooleanequals(StringanotherString)例如:

Stringa=“Hello!”; Stringb=“Goodmorning!”; if(a.equals(b)) System.out.println(“a和b的内容相同”);else System.out.println(“a和b的内容不相同”);第04章数组、字符串与例外处理18==

运算符当用于基本数据类型时,用于判别内容是否相等当用于引用数据类型时,用来判别引用是否指向相同的对象Java虚拟机中含有字符串池(直接量在此池内),相同内容的字符串直接量相同的对象s1="hello";//字符串常量s2=newString("hello");s1=="hello";//trues2=="hello";//false第04章数组、字符串与例外处理19类StringBufferStringBuffer类和String类相似,也是用来存储字符序列的。但其实现原理和运行效率是不同的。类String字符串(String)对象一旦创建,其内容不能再被修改(read-only)类StringBufferStringBuffer

对象的内容是可以被修改的除了字符的长度之外,还有容量的概念通过动态改变容量的大小,加速字符管理第04章数组、字符串与例外处理20三种StringBuffer构造方法buf1=new

StringBuffer();创建空的StringBuffer对象容量为16字符buf2=new

StringBuffer(capacity);创建空的StringBuffer对象指定容量大小buf3=newStringBuffer(myString);创建含有相应字符序列的StringBuffer对象容量为myString.length()+16实例:

StringBufferb=newStringBuffer("hello");第04章数组、字符串与例外处理21String和StringBufferString

和StringBuffer

是两种不同的类不能用字符串(String)的实例对象调用类(StringBuffer)的成员方法反之亦然String

StringBuffer构造方法StringBuffer

String构造方法方法toString()第04章数组、字符串与例外处理22StringBuffer方法方法length()返回StringBuffer

的长度方法capacity()返回StringBuffer

的容量方法setLength(intnewLength)

增加或减小StringBuffer

的长度第04章数组、字符串与例外处理23处理StringBuffer内字符的方法方法charAt(intindex)

返回StringBuffer

对象中指定位置的字符方法setCharAt(intindex,charch)

设置StringBuffer对象中指定位置的字符方法getChars(intsrcBegin,intsrcEnd,

char[]dst,intdstBegin)

将StringBuffer对象中指定的字符子序列,拷贝到指定的字符数组(dst)方法reverse()将StringBuffer

对象中的字符序列按逆序方式排列第04章数组、字符串与例外处理2411种append

方法允许数值类型的值添加到StringBuffer对象中实例:publicStringreverseIt(Stringsource){

intc;intlen=source.length();

StringBufferdest=newStringBuffer(len);

for(c=(len-1);c>=0;c--){dest.append(source.charAt(c));}

returndest.toString();}第04章数组、字符串与例外处理25insert

和delete

方法10种insert

方法允许将各种数据插到StringBuffer对象的指定位置方法delete(intstart,intend)

和deleteCharAt(intindex)

允许删除StringBuffer对象中的指定字符第04章数组、字符串与例外处理26本章总体纲要数组字符串例外处理第04章数组、字符串与例外处理27Java例外处理(Exception)基础例外(Exception)?例外(Exception)是正常程序流程所不能处理或没有处理的例外情况或例外事件。在有些书中,例外也称作异常。第04章数组、字符串与例外处理28格式在try语句块中包含可能会产生例外的语句紧接着若干个catch语句块,进行例外处理catch语句块与finally语句块至少存在一个try{

//codethatmaythrowexceptions}catch(ExceptionTyperef){

//exceptionhandlingcode

}finally{

//…}第04章数组、字符串与例外处理29为什么需要例外?强制程序例外(/异常/错误)处理同时指定需要例外的种类例外处理模型提供了一种统一处理例外(/异常/错误)的模式传统程序方法:设置标志位,或返回错误码,分别处理各种例外情况。但在编程时又常常忘了进行例外情况的处理,尤其是存在多个分支,或者多个开发人员共同开发程序。简化对例外情况的处理,减少if-else语句第04章数组、字符串与例外处理30什么时候会发生例外?数组的下标越界打开不存在的文件网络无法连接操作数超出所要求的范围少了所需加载的类自定义例外,要求程序处理第04章数组、字符串与例外处理31处理例外的几种常用方法一旦捕获例外,马上进行处理重新抛出例外捕获例外,但并不处理通过语句System.exit()退出应用程序第04章数组、字符串与例外处理32例外(Exceptions)类型常见例外内存耗尽数组下标越界除数为0非法的参数(方法的参数)第04章数组、字符串与例外处理33例外(Exception)的层次结构第04章数组、字符串与例外处理34运行时发生的例外(RuntimeExceptions)例外随时都可以发生ArrayIndexOutOfBoundsExceptionNullPointerException定义了引用,但不指向任何对象(object)ClassCastException数据类型间的转换不合法良好的编程习惯,可以减少很多例外的发生第04章数组、字符串与例外处理35受检例外和非受检例外受检例外必须在方法声明时通过throws列出在编译时就能被检测出非受检测例外不必在throws列表中错误(Error)和运行时例外(RuntimeException)受检例外,必须处理才能通过编译运行时例外只有在运行时才能被发现错误(Error)常常指的是致命性错误,常常也无法处理第04章数组、字符串与例外处理36处理多种例外(Exception)类型如果含有多个catch语句块,则例外会被第一个与其相匹配的catch语句块处理第04章数组、字符串与例外处理37finally

语句块在例外处理过程中,finally

语句块总是会被执行到:无论有没有例外发生,也无论有没有例外被捕

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论