资源预览内容
第1页 / 共66页
第2页 / 共66页
第3页 / 共66页
第4页 / 共66页
第5页 / 共66页
第6页 / 共66页
第7页 / 共66页
第8页 / 共66页
第9页 / 共66页
第10页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
面向对象JAVA语言程序设计信息科学与技术学院 网络工程系 周文峰1第五章 常用系统类主要任务:介绍Java常用的系统类,包括字符 串类、输入输出流类、 Java Applet类、 数学函数类、日期类、随机数类以及向 量类等。 2主要内容 字符串类 String类 StringBuffer类和StringBuilder类35.1 字符串类字符与字符串的区别 字符是指用单引号括起来单个字符,如a、 b、A等。这里的字符不是指占1个字节 的ASCII字符,而是指占2个字节的Unicode字符 。因为Unicode被设计用来处理现在世界上所有 书面语言中的字符,所以一个汉字也是被当作 一个字符来处理的。对于单个字符,除了有 char这个原始类型以外,Java平台中的 java.lang包还专门提供了一个Character类来 进行储存和操作。在计算机科学领 域中,Unicode( 统一码、万国 码、单一码、标 准万国码)是业 界的一种标准。45.1 字符串类 字符串是程序设计中经常用到的数据结构,很 多编程语言将字符串定义为基本数据类型。但 在Java语言中,字符串被定义为类,必须先生成 类的实例对象然后才能使用。 常用有两种类型的字符串:一种是创建以后不 需要改变的,称为字符串常量,在Java中, String类用于存储和处理字符串常量;另外一 种字符串是创建以后,需要对其进行改变的, 称为字符串变量,在Java中,StringBuffer类 用于存储和操作字符串变量。5字符串与字符串类 字符串是一个完整的字符序列,可以包含字母 、数字和其它符号。 在Java中,用双引号括起来的字符串是字符串常 量,又称为无名字符串对象,由Java自动创建。 字符串常量可以赋给任何一个String对象引用, 这样处理从表面上看起来和其它编程语言没有 大的差别,照顾了程序员的习惯,但实际上存 在着较大的差异。无论何时,Java中的字符串都 是以对象的面孔出现的,在运行时要为它分配 内存空间,创建对象引用。6Java将字符串定义为类有哪些好处呢? 首先,在任何系统平台上都能保证字符串本身 以及对字符串的操作是一致的。对于网络环境 ,这一点是至关重要的。 其次,String和StringBuffer经过了精心设计 ,其功能是可以预见的。为此,二者都被说明 为最终类,不能派生子类,以防用户修改其功 能。 最后,String和StringBuffer类在运行时要经 历严格的边界条件检验,它们可以自动捕获异 常,提高了程序的健壮性。75.1 字符串类 字符串对象 字符串长度及查找 字符串的连接及子串 字符串常量与比较 String对象的不变性 命令行参数85.1.1 字符串类 Java语言提供了三个字符串类:String类 、StringBuffer类和StringBuilder类。 String类是不变字符串,StringBuffer和 StringBuilder是可变字符串,这3种字符 串都是16位(2个字节)的Unicode字符序 列,并且这3个类都被声明为final,因此 不能被继承。 95.1.1 字符串类 Java语言用String类表示字符串。一般 使用String类的构造方法创建一个字符串 对象。String类有13个重载的构造方法, 可以生成一个空字符串,也可以由字符或 字节数组生成字符串。 String类常用的构造方法如下: public String()/ 空字符序列构造字符串对象 public String(char value)/字符数组构造字符串对象105.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)115.1.1 字符串类例如: char chars1=A,B,C; char chars2=中,国,; String s1=new String(chars1); String s2=new String(chars2, 0, 4);125.1.1 字符串类 在Java中,还有一种特殊的创建String对象 的方法,这种方法是直接利用字符串常量 创建字符串对象,例如:String s=“This is a Java string.” ; 13常量串存储在串池中。 编译时,每当碰到一个常量串,JVM就会在串池中搜索,如果此串存 在,则直接使用这个现成的串;如果没有,就在串池中创建一个新串 。 String x=“abcd”;String y=“abcd”;String z=“1234”;xyz串池对象: ”abcd”对象: ”1234” x,y,z并不是真正的对象,只是指向对象存储位置 的引用。(C语言中称为指针)栈内存 搜索没找到找到nullnullnull字符串的内存分配(字符串常量)14 字符串变量与字符串常量不存储在同样的位置 。字符串的内存分配(创建串对象)String x=new String(“abcd”);x对象: ”abcd”对象: ”abcd”其它常量 对象串池null搜索找到复制栈内存 堆内存 155.1.2 字符串长度及查找 创建String类对象外,更常用的是调用String类的 方法,该类定义了许多方法。public int length() 返回字符串的长度,即字符串包含的字符个数 。注意对含有汉字和其他语言符号的字符串, 计算长度时,一个符号作为一个字符计数。 例如获取字符串“MingRiSoft”长度的代码如下:String nameStr = “MingRiSoft“; int i = nameStr.length();/ 获得字符串的长度为10165.1.2 字符串长度及查找public int indexOf(int ch) 查找字符ch第一次出现的位置。如果查找不成 功则返回-1。public int indexOf(int ch, int fromIndex ) 查找字符ch从fromIndex开始第一次出现的位置(在原字符串中的下标)。 String str = “mingrikeji“; int i = str.indexOf(i); System.out.println(“字符i第一次出现在索引:“ + i); / 索引值是1175.1.2 字符串长度及查找public int indexOf(String str) 查找字符串str第一次出现的位置。如果查找不 成功则返回-1。public int indexOf(String str, int fromIndex ) 查找字符串str从fromIndex开始第一次出现的位 置(在原字符串中的下标)。String str = “mingrikeji“; i = str.IndexOf(“ri“); System.out.println(“字符串“ri”第一次出现在索引:“ + i); / 索引值是4185.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); / 索引值是9 i = str.lastIndexOf(i, 4); System.out.println(“到第4个字符为止,字符i最后一次出现在索引:“ + i);/ 索引值是1195.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(“字符串ri最后一次出现在索引:“ + i); / 索引值是4205.1.3 字符串的连接与子 串public String concat(String str) 调用字符串与参数字符串连接起来,产生一个 新的字符串。public String substring(int beginIndex, int endIndex) 从字符串的下标beginIndex开始到endIndex结束 产生一个子字符串。(不包含endIndex处的字符 )public String substring(int beginIndex) 从字符串的下标beginIndex开始到结束产生一个 子字符串。215.1.3 字符串的连接与子 串public char charAt(int index) 返回字符串中指定位置的字符,index表示 位置,范围为0s.length()-1。public String replace(char oldChar, char newChar) 将调用字符串中的所有oldChar字符改变为 newChar字符,返回一个新的字符串。225.1.3 字符串的连接与子 串public String toUpperCase()public String toLowerCase() 将字符串转换成大写或小写字母。public boolean startsWith(String prefix)public boolean endsWith(String suffix) 返回字符串是否以某个字符串开始或结尾 。235.1.3 字符串的连接与子 串public void getChars(int srcBegin, int srcEnd, char dst, int dstBegin) 将字符串中从起始位置(srcBegin)到结束位 置(srcEnd)之间的字符复制到字符数组dst 中从起始位置为dstBegin。245.1.3 字符串的连接与子 串下面的程序说明了String对象的使用。String s=new String(“This is a Java string.“) ;System.out.println(s.length(); / 22System.out.println(s.charAt(10); / JSystem.out.println(s.lastIndexOf(a); / 13System.out.println(s.lastIndexOf(a,10); / 8System.out.println(s.indexOf(“is“); / 2255.1.3 字符串的连接与 子串String s=new String(“This is
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号