面向对象语言程序设计课程第五章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《面向对象语言程序设计课程第五章课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 语言程序设计 课程 第五 课件
- 资源描述:
-
1、面向对象JAVA语言程序设计信息科学与技术学院信息科学与技术学院 网络工程系网络工程系 周文峰周文峰2第五章 常用系统类 主要任务:介绍Java常用的系统类,包括字符串类、输入输出流类、Java Applet类、数学函数类、日期类、随机数类以及向量类等。3 主要内容 字符串类 StringString类类 StringBufferStringBuffer类和类和StringBuilderStringBuilder类类4 5.1 字符串类字符与字符串的区别 字符是指用单引号括起来单个字符,如a、b、A等。这里的字符不是指占1个字节的ASCII字符,而是指占2个字节的Unicode字符。因为Uni
2、code被设计用来处理现在世界上所有书面语言中的字符,所以一个汉字也是被当作一个字符来处理的。对于单个字符,除了有char这个原始类型以外,Java平台中的java.lang包还专门提供了一个Character类来进行储存和操作。在计算机科学领 域中,Unicode(统一码、万国 码、单一码、标准万国码)是业界的一种标准。5 5.1 字符串类 字符串是程序设计中经常用到的数据结构,很多编程语言将字符串定义为基本数据类型。但在Java语言中,字符串被定义为类,必须先生成类的实例对象然后才能使用。常用有两种类型的字符串:一种是创建以后不需要改变的,称为字符串常量,在Java中,String类用于存
3、储和处理字符串常量;另外一种字符串是创建以后,需要对其进行改变的,称为字符串变量,在Java中,StringBuffer类用于存储和操作字符串变量。6字符串与字符串类 字符串是一个完整的字符序列,可以包含字母、数字和其它符号。在Java中,用双引号括起来的字符串是字符串常量,又称为无名字符串对象,由Java自动创建。字符串常量可以赋给任何一个String对象引用,这样处理从表面上看起来和其它编程语言没有大的差别,照顾了程序员的习惯,但实际上存在着较大的差异。无论何时,Java中的字符串都是以对象的面孔出现的,在运行时要为它分配内存空间,创建对象引用。7Java将字符串定义为类有哪些好处呢?首先
4、,在任何系统平台上都能保证字符串本身以及对字符串的操作是一致的。对于网络环境,这一点是至关重要的。其次,String和StringBuffer经过了精心设计,其功能是可以预见的。为此,二者都被说明为最终类,不能派生子类,以防用户修改其功能。最后,String和StringBuffer类在运行时要经历严格的边界条件检验,它们可以自动捕获异常,提高了程序的健壮性。85.1字符串类 字符串对象 字符串长度及查找 字符串的连接及子串 字符串常量与比较 String对象的不变性 命令行参数95.1.1 字符串类 Java语言提供了三个字符串类:String类、StringBuffer类和StringBu
5、ilder类。String类是不变字符串,StringBuffer和StringBuilder是可变字符串,这3种字符串都是16位(2个字节)的Unicode字符序列,并且这3个类都被声明为final,因此不能被继承。105.1.1 字符串类 Java语言用String类表示字符串。一般使用String类的构造方法创建一个字符串对象。String类有13个重载的构造方法,可以生成一个空字符串,也可以由字符或字节数组生成字符串。String类常用的构造方法如下:public String()/空字符序列构造字符串对象 public String(char value)/字符数组构造字符串对象11
6、5.1.1 字符串类 public String(char value,int offset,int count)/字符数组的子数组 public String(byte bytes)/byte数组构造字符串对象数组构造字符串对象 public String(byte bytes,int offset,int length)public String(String original)/构造一个original的副本副本 public String(StringBuffer buffer)public String(StringBuilder buffer)125.1.1 字符串类例如:char
7、 chars1=A,B,C;char chars2=中,国,;String s1=new String(chars1);String s2=new String(chars2,0,4);135.1.1 字符串类 在Java中,还有一种特殊的创建String对象的方法,这种方法是直接利用字符串常量创建字符串对象,例如:String s=“This is a Java string.”;14常量串存储在串池中。编译时,每当碰到一个常量串,JVM就会在串池中搜索,如果此串存在,则直接使用这个现成的串;如果没有,就在串池中创建一个新串。String x=“abcd”;String y=“abcd”;S
8、tring z=“1234”;xyz串池对象:”abcd”对象:”1234”x,y,z x,y,z并不是真正的对象,只是指向对象存储位置并不是真正的对象,只是指向对象存储位置的引用。(的引用。(C C语言中称为指针)语言中称为指针)栈内存 搜索没找到找到nullnullnull字符串的内存分配(字符串常量)字符串的内存分配(字符串常量)15 字符串变量与字符串常量不存储在同样的位置。字符串的内存分配(创建串对象)String x=new String(“abcd”);x对象:”abcd”对象:”abcd”其它常量对象串池null搜索找到复制栈内存 堆内存 165.1.2 字符串长度及查找 创建
9、String类对象外,更常用的是调用String类的方法,该类定义了许多方法。public int length()返回字符串的长度,即字符串包含的字符个数。注意对含有汉字和其他语言符号的字符串,计算长度时,一个符号作为一个字符计数。例如获取字符串“MingRiSoft”长度的代码如下:String nameStr=MingRiSoft;int i=nameStr.length();/获得字符串的长度为10175.1.2 字符串长度及查找 public int indexOf(int ch)查找字符ch第一次出现的位置。如果查找不成功则返回-1。public int indexOf(int c
10、h,int fromIndex)查找字符ch从fromIndex开始第一次出现的位置(在原字符串中的下标)。String str=mingrikeji;int i=str.indexOf(i);System.out.println(字符i第一次出现在索引:+i);/索引值是1185.1.2 字符串长度及查找 public int indexOf(String str)查找字符串str第一次出现的位置。如果查找不成功则返回-1。public int indexOf(String str,int fromIndex)查找字符串str从fromIndex开始第一次出现的位置(在原字符串中的下标)。S
11、tring str=mingrikeji;i=str.IndexOf(ri);System.out.println(“字符串“ri”第一次出现在索引:+i);/索引值是4195.1.2 字符串长度及查找 public int lastIndexOf(int ch)查找字符ch最后一次出现的位置。public int lastIndexOf(int ch,int endIndex)查找字符ch到endIndex为止最后一次出现的位置。String str=mingrikeji;i=str.lastIndexOf(i);System.out.println(字符i最后一次出现在索引:+i);/索引
12、值是9i=str.lastIndexOf(i,4);System.out.println(“到第4个字符为止,字符i最后一次出现在索引:+i);/索引值是1205.1.2 字符串长度及查找 public int lastIndexOf(String str)查找字符串str最后一次出现的位置。public int lastIndexOf(String str,int endIndex)查找字符串str到endIndex为止最后一次出现的位置(在原字符串中的下标)。String str=mingrikeji;i=str.lastIndexOf(ri);System.out.println(“字符
13、串ri最后一次出现在索引:+i);/索引值是4215.1.3 字符串的连接与子串 public String concat(String str)调用字符串与参数字符串连接起来,产生一个新的字符串。public String substring(int beginIndex,int endIndex)从字符串的下标beginIndex开始到endIndex结束产生一个子字符串。(不包含endIndex处的字符)public String substring(int beginIndex)从字符串的下标beginIndex开始到结束产生一个子字符串。225.1.3 字符串的连接与子串 publi
14、c char charAt(int index)返回字符串中指定位置的字符,index表示位置,范围为0s.length()-1。public String replace(char oldChar,char newChar)将调用字符串中的所有oldChar字符改变为newChar字符,返回一个新的字符串。235.1.3 字符串的连接与子串 public String toUpperCase()public String toLowerCase()将字符串转换成大写或小写字母。public boolean startsWith(String prefix)public boolean end
15、sWith(String suffix)返回字符串是否以某个字符串开始或结尾。245.1.3 字符串的连接与子串 public void getChars(int srcBegin,int srcEnd,char dst,int dstBegin)将字符串中从起始位置(srcBegin)到结束位置(srcEnd)之间的字符复制到字符数组dst中从起始位置为dstBegin。255.1.3 字符串的连接与子串下面的程序说明了String对象的使用。String s=new String(This is a Java string.);System.out.println(s.length();/
16、22 System.out.println(s.charAt(10);/J System.out.println(s.lastIndexOf(a);/13 System.out.println(s.lastIndexOf(a,10);/8 System.out.println(s.indexOf(is);/2265.1.3 字符串的连接与子串 String s=new String(This is a Java string.);System.out.println(s.lastIndexOf(is);/5 System.out.println(s.indexOf(my);/-1 char s
17、ubs=new char4;s.getChars(10,14,subs,0);System.out.println(subs);/Java275.1.3 字符串的连接与子串 String s=new String(This is a Java string.);String s1=Its interesting.;s1=s.concat(s1);System.out.println(s.toUpperCase();/THIS IS A JAVA STRING.System.out.println(s1.toLowerCase();/this is a java string.its inter
18、esting.System.out.println(s.endsWith(in);/false285.1.4 字符串解析 String类提供了一个split()方法,它用来实现将一个字符串分解成子字符串或令牌(token)。该方法使用正则表达式指定分隔符public String split(String regex,int limit)public String split(String regex)29public class SplitDemopublic static void main(String args)String ss=11,22,33;System.out.println
19、(ss);String str=ss.split(,);System.out.println(str0);System.out.println(str1);System.out.println(str2);305.1.5 字符串常量与字符串比较 在Java程序中,凡是由双引号定界的字符序列都是字符串常量(literal string),如”abc”。字符串常量存放在字符串常量池(pool of literal string)中。字符串常量也是String类的对象,可以直接使用,例如:System.out.println(Hello.length();/结果输出5 311.字符串相等的比较 你可
20、能想到用“=”号来比较,如下代码所示。String s1=new String(Hello);String s2=new String(Hello);System.out.println(s1=s2);5.1.5 字符串常量与字符串比较32再看下面一段代码:String s1=“Hello”;String s2=“Hello”;System.out.println(s1=s2);33String str1=abc;String str2=abc;System.out.println(str1=str2);/true 字符串的比较str1str2串池对象:”abc”栈内存 搜索找到nullnul
展开阅读全文