Java-核心标称技术图文课件--4.pptx
《Java-核心标称技术图文课件--4.pptx》由会员分享,可在线阅读,更多相关《Java-核心标称技术图文课件--4.pptx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1%大连理工大学出版社地址:大连市软件园路80号发行:0411-84708842E-mail:DutpD(第二版)主编:张屹蔡木生新世纪应用型高等教育软件专业系列规划教材Java Java Java Java 核心编程技术核心编程技术核心编程技术核心编程技术 2 绩效概述绩效管理绩效管理实施过程KPI与BSc第 2 页第四章Java API实用类4.2 StringBuffer 类4.1String 类4.3Math类4.5日期日历类4.4包装类 目 录 3 第四章Java API实用类4.1 String 类1字符串常量:即是用双引号()括住的字符序列。这种表示法简单、实用,例如:Stri
2、ng str1=Java程序设计;/str1是String类的实例4.1.1字符串的概念字符串的概念 4 第四章Java API实用类4.1 String 类2字符串的内容。字符串的内容不可改变的,这就是说,字符串一旦生成,它的值及所分配的内存空间就不能再被改变。如果硬性改变其值,将会产生一个新的字符串,原对象引用所指的内容会随之变化。4.1.1字符串的概念字符串的概念 5 第四章Java API实用类4.1 String 类1String():默认构造方法,生成一个空串2String(String original):以一个字符串为参数构造另一个字符串,即进行字符串拷贝3以字符数组为参数构造
3、字符串(1)String(char value)其中:value为源字符数组(2)String(char value,int offset,int count)其中:value含义同(1),offset是value的开始下标,count是字符个数 4以字节数组为参数构造字符串:(1)String(byte bytes)(2)String(byte bytes,String charsetName)(3)String(byte bytes,int offset,int length)5String(StringBuffer buffer):以缓冲字符串为参数构造字符串4.1.2字符串的字符串的创
4、建建 6 第四章Java API实用类4.2 StringBuffer类和StringBuilder类StringBuffer也是一个字符序列,类似于String,但与String不同的是:可以改变其长度和内容,用户可以根据需要,在StringBuffer中进行附加、插入、替换、删除、查询等操作,操作结果作用于StringBuffer串本身,并无新对象产生,非常适合大型文本的处理。StringBuffer还具有线程安全性,由于采用了同步机制,不允许多个线程同时对StringBuffer进行增加或修改操作。不过这多少会影响程序运行效率,于是从JDK 5.0起新增了一个StringBuilder类
5、,该类有着与StringBuffer完全相同的API,但是它不具有线程安全性,同等情况程序执行效率会更高一些。由此可以得出结论,StringBuffer与StringBuilder功能相同,只是在安全性、执行效率上存在一些差异,学习时只要掌握其中一个即可。4.2.1引入引入StringBuffer的原因的原因 7 第四章Java API实用类4.2 StringBuffer类和StringBuilder类 StringBuffer 类的常用构造方法有三个,具体如下:1.StringBuffer():建立一个不包含任何文本的StringBuffer对象,可在以后操作时添加其内容。初始容量为16字
6、节2.StringBuffer(int capacity):建立一个容量为capacity的StringBuffer对象,它不包含任何文本。3.StringBuffer(String str):以参数str来创建StringBuffer对象。说明:随着文本的增加,字符串的长度在不断增大;当长度大于StringBuffer对象的现有容量时,Java会自动增加其容量。所以,在进行StringBuffer的增加、删除操作时,不必考虑其容量问题。4.2.2StringBuffer对象的象的创建建 8 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.3
7、 StringBuffer类的常用方法的常用方法1.对象自身操作(1)获取和设置StringBuffer的长度nit length():返回所包含字符串的长度(即字符个数)。void setLength(int newLength):设置包含字符串的长度。如果newLength比当前字符串的长度大,将在字符串尾部加空字符(u0000),假如newLength比当前字符串的长度小,则将字符串长度缩短为newLength。(2)获取StringBuffer的容量大小:int capacity(),其返回值=字符串长度+16。现在用一个例子来验证这些方法。9 第四章Java API实用类4.2 St
8、ringBuffer类和StringBuilder类4.2.3 StringBuffer类的常用方法的常用方法2.增加字符串(1)增加字符串的功能之一是在尾部追加各种类型的数据,并转换为字符串。基本格式:void append(数据),例如:StringBuffer append(boolean b)StringBuffer append(char c)StringBuffer append(double d)StringBuffer append(int i)StringBuffer append(Object obj)例如:StringBuffer sb=new StringBufferO
9、;sb.append(12);/包含的字符串为,12sb.append(true);/包含的字符串为:12true 10 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.3 StringBuffer类的常用方法的常用方法2.增加字符串(2)增加字符串的功能之二是在指定位置上插人各种类型的数据,并转换为字符串。基本格式:void insert(int offset,数据),其中,offset为插人点下标。例如:StringBuffer insert(int offset,char c)StringBuffer insert(int offset
10、,double d)StringBuffer insert(int offset,int i)StringBuffer insert(int offset,Object obj)例如:StringBuffer sb=newStringBuffer(abcde);sb.insert(0,12);/包含的字符串为:12abcdesb.insert(4,true);/包含的字符串为:12abtruecde 11 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.3 StringBuffer类的常用方法的常用方法3.删除字符或字符串(1)StringB
11、uffer deleteCharAt(int index):删除指定位置的字符。(2)StringBuffer delete(int start,int end):删除从 start 位置到 end 之间(不包括 end 位置)的字符串。4.替换字符串StringBuffer replace(int start,int end,String str):用“str”替换从 start 位置到 end 之间(不包括end位置)的字符串。5.获取或设置指定位置的字符(1)char charAt(int index):获取下标为 index 的字符。(2)void setCharAt(int inde
12、x,char ch):用“ch”设置 index 位置的字符。12 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.3 StringBuffer类的常用方法的常用方法6.获取字符串的子串(1)String substring(int beginlndex):获取从beginlndex位置开始到结尾的所有字符。(2)String substring(int beginlndex,int endlndex):获取从 beginlndex 位置到 endlndex 之间(不包括endlndex位置)的字符串。7.将包含的字符串逆序StringBuf
13、fer reverse()例如:StringBuffer sb=new StringBuffer(abcdef);sb.reverseO;/包含的字符串为:fedcba 13 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.3 StringBuffer类的常用方法的常用方法8.将StringBuffer 对象转换成 String 对象:String toString()通常在输出StringBuffer内容时要执行此操作。例如:StringBuffer sb=new StringBuffer(abcde);System.out.println
14、(sb.toStringO);/输出结果:abcdef再次提醒:与Strmg不同,StrmgBuffer进行增加、删除、修改等一系列操作后,受影响的 是其本身,并不会产生新对象。例4.3可以说明这一点。14 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类StringBuilder类也是一个可变的字符序列。此类提供一个与StringBuffer兼容的API,但不保证同步。该类被设计用作StnngBuffer的一个简易替换,用在字符串缓冲区被单个线 程使用的时候,这种情况很普遍。在Java中,首先出现的是Stri
15、ngBuffer,而StringBuilder类来源于JDK1.5及以后的版 本,JDK 1.4(包括1.4)之前是不存在该类的。请注意不要在JDK 1.4的环境里使用 StringBuilder类,否则会出错。如果可能,建议优先采用该类,因为在大多数实现中,它比StnngBuffer要快。在 StringBuilder上的主要操作是append和insert方法。每个方法都能有效地将给定的数据转 换成字符串,然后将该字符串的字符添加或插人到字符串生成器中。append方法始终将这些 字符添加到生成器的末端;而insert方法则在指定的位置添加字符。将StnngBmlder的实例用于多个线程是
16、不安全的。如果需要这样的同步,则建议使用 StringBuffer。StringBuilder类可以用于在无须创建一个新的字符串对象情况下修改字符串。StringBuilder不是线程安全的,而StringBuffer是线程安全的。但StringBuilder在单线程中 的性能比StringBuffer高。15 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类1.StringBuilder类的常用属性和方法(1)属性int Capacityget;set;/获取或设置可包含在当前实例所分配的内存中的最大字符串
17、int Lengthget;set;/获取或设置当前 System.Text.StringBuilder 对象的长度 int MaxCapacityget;/获取此实例的最大容量(2)实例方法StringBuilder 八ppend(value);/在此实例追加指定值StringBuilder 八ppendFormat(String format,params object args);/追加格式化后的值 StringBuilder 八ppendLineO;/追加行终止符StringBuilder AppendLine(String value);/追加字符串,默认后面接行终止符 String
18、Builder Clear();/从当前实例中移除所有字符void CopyTo(int sourcelndex,char口 destination,int destinationlndex,int count);/将此实例指定段中的字符复制到字符数组的指定段中 16 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类1.StringBuilder类的常用属性和方法StringBuilder Insert(int index,value);/将字符串插入到实例中指定字符位置 StringBuilder Remov
19、e(int startlndex,int length);/将指定范围的字符从此实例中移除 StringBuilder Replace(String oldValue,String newValue);/将此实例中所有指定字符串的匹配项替换为其他指定字符串 String ToStringO;/将此实例的值转换为 System.String 17 第四章Java API实用类4.3Math类Math类位于java.lang包中,它继承了Object类,包含基本的数学计算,如指数、对数、平方根和三角函数,由于它是final类,不能再被继承。Math类的属性、方法绝大多数是静态(static)的,在
20、使用时不必创建对象,直接采用:Math.属性 或 Math.方法(参数表)格式调用即可。1.静态常量(1)E:e 的近似值,为double类型。(2)PI:圆周率 的近似值,为double类型。4.3.1 StringTokenizer类的功能类的功能 18 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类2.StringBuilder 类的使用(1)创建通过用一个重载的构造函数方法初始化变量,可以创建StringBuilder类的新实例,例如:StringBuilder MyStringBuilder=new
21、 StringBuilder(,/Hello World!);(2)设置容量和长度虽然StnngBmlder对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是可 以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应将它与当前 StringBuilder对象容纳的字符串长度混淆在一起。例如,可以创建StringBuilder类的带有字符串“Hello”长度为5)的一个新实例,同时可 以指定该对象的最大容量为25。当修改StringBuilder时,在达到容量之前,它不会为自己重新 分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来 指定Strin
22、gBuilder类的容量。以下代码示例指定将MyStringBuilder对象扩充到最大25。StringBuilder MyStringBuilder=new StringBuilder(Hello World!,25);19 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类2.StringBuilder 类的使用另外,可以使用读/写Capacity属性来设置对象的最大长度。以下代码示例使用Capacity属性来定义对象的最大长度。MyStringBuilder.Capacity=25;EnsureCapac
23、ity方法可用来检查当前StringBuilder的容量。如果容量大于传递的值,则不进行任何更改;旦是,如果容量小于传递的值,则会更改当前的容量以使其与传递的值匹配。也可以查看或设置Length属性。如果将Length属性设置为大于Capacity属性的值,则自动将Capacity属性更改为与Length属性相同的值。如果将Length属性设置为小于当前 StringBuilder对象内的字符串长度的值,则会缩短该字符串。20 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类2.StringBuilder 类的
24、使用(3)常用方法使用Append()方法Append()方法可用来将文本或对象的字符串表示形式添加到由当前StringBuilder对象表示的字符串的结尾处。以下示例将一个StnngBmlder对象初始化为“Hello World”,然后 将一些文本追加到该对象的结尾处。该字符串将根据需要自动分配空间。StringBuilder MyStringBuilder=new StringBuilder(Hello World!);MyStringBuilder.Append(What a beautiful day.);System.out.print(MyStringBuilder);此示例将H
25、ello World!What a beautiful day.显示到控制台。21 第四章Java API实用类4.2 StringBuffer类和StringBuilder类4.2.4StringBuilder 类2.StringBuilder 类的使用App endF ormat()方法AppendFormat()方法将文本添加到StringBuilder的结尾处,而且实现了 IFormattable 接口,因此可接收格式化部分中描述的标准格式字符串。可以使用此方法来自定义变量的格 式并将这些值追加到StringBuilder的后面。以下示例使用AppendFormatO方法将一个设置 为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 核心 标称 技术 图文 课件
限制150内