Java程序设计:5 数组与字符串.part2_第1页
Java程序设计:5 数组与字符串.part2_第2页
Java程序设计:5 数组与字符串.part2_第3页
Java程序设计:5 数组与字符串.part2_第4页
Java程序设计:5 数组与字符串.part2_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、Java 程序程序设计设计华南农业大学华南农业大学 教育技术教育技术 第第5章章 数组与字符串数组与字符串Part 2.本章知识要点本章知识要点u数组数组、n数组名数组名(数组引用数组引用)n数组元素数组元素n数组长度数组长度a.lengthn常用操作算法实现常用操作算法实现n冒泡排序冒泡排序/选择排序选择排序n二分查找二分查找u数组类数组类Arrayn排序排序Sortn查找查找binarySearchn内容相等内容相等equalsu字符串字符串Stringn比较比较ns1.equals(s2)pareTo(s2)ns.startsWith(prefix)ns.endsWith(suffix)

2、n长度与提取字符内容长度与提取字符内容ns.length()ns.charAt(index)ns.substring(index)ns.indexOf(字符字符|字符串字符串)ns.lastIndexOf (字符字符|字符串字符串)Java程序程序设计设计2u字符串字符串Stringn修改修改ns1=s.toLowerCase();ns1=s.toUppercase();ns1=s.trim ( );ns1=s.replace(e,A);ns1=s.replaceFirst(“e”,”A”);ns1=s.replaceAll(“e”,”A”);n基本数据类型转换为字符串基本数据类型转换为字符串

3、ns=String.valueOf(基本数基本数据类型表达式据类型表达式)5.4 字符串字符串uJava语言将字符串作为对象处理,提供语言将字符串作为对象处理,提供String、StringBuffer和和StringBuilder三个预定义的三个预定义的类存储和处理字符串,这三个类都位于类存储和处理字符串,这三个类都位于java.lang包。包。nString标准类实现的字符串常量标准类实现的字符串常量nStringBuffer标准类实现的可编辑修改的字符串标准类实现的可编辑修改的字符串(字符串变量),多线程(字符串变量),多线程nStringBuilder: 5.0新增,较新增,较Stri

4、ngBuffer快,快,功能一样,单线程功能一样,单线程1. 声明字符串变量和创建字符串对象声明字符串变量和创建字符串对象u声明字符串变量的方法与声明其他类型变量相同。声明字符串变量的方法与声明其他类型变量相同。u每个字符串变量不是直接存储一个字符串,而是每个字符串变量不是直接存储一个字符串,而是存储一个字符串对象的地址。存储一个字符串对象的地址。 u在程序中创建一个新的字符串对象要使用在程序中创建一个新的字符串对象要使用new运算符。运算符。uString类描述的字符串对象是不可变的,它的类描述的字符串对象是不可变的,它的值在对象创建完成后就不能再改变了。值在对象创建完成后就不能再改变了。

5、String message = new String(“Welcome”);message = message + “ to Java”;String message = “Welcome to Java”;1. 声明字符串变量和创建字符串对象声明字符串变量和创建字符串对象String message = new String(“Welcome”);message = message + “ to Java”;2. 字符串的比较字符串的比较u关系运算符关系运算符“=”只能用于判断两个字符串变量只能用于判断两个字符串变量是否访问同一个字符串,而不能判断两个不同的字是否访问同一个字符串,而不能判

6、断两个不同的字符串对象的值是否相等。符串对象的值是否相等。uString类中提供类中提供equals方法用于比较两个字符串方法用于比较两个字符串的内容是否相同,返回值为的内容是否相同,返回值为boolean类型。类型。u比较两个字符串的大小:比较两个字符串的大小:String类的类的compareTo方法。方法。 u读程序,猜结果读程序,猜结果nOpString.javaString str1, str2, str3;str1 = This is a string; str2 = new String(This is a string); str3 = str1; String s1, s2,

7、 s3,s4; s1 = This is a string; s2 = new String(This is a string); s3 = s1; s4 = OK; /字符串的比较字符串的比较 System.out.println(s1=s2是是+(s1=s2); System.out.println(s1=s3是是+(s1=s3); System.out.println(s2=s3是是+(s2=s3); System.out.println(s1.equals(s2)是是+s1.equals(s2); System.out.println(s1.equals(s3)是是+s1.equals

8、(s3); System.out.println(pareTo(s2)是是+pareTo(s2); System.out.println(pareTo(s3)是是+pareTo(s3); System.out.println(s1.equals(s4)是是+s1.equals(s4); System.out.println(pareTo(s4)是是+pareTo(s4); System.out.println(s1.startsWith(Th)是是+s1.startsWith(Th); System.out.println(s1.startsWith(O)是是+s1.startsWith(O)

9、;在使用在使用Sting类对象时需要注意几点:类对象时需要注意几点:u在在Java语言中,字符串直接量中的每个字符使语言中,字符串直接量中的每个字符使用用Unicode编码,占用两个字节。编码,占用两个字节。u如果定义如果定义String类对象之后,没有引用任何一类对象之后,没有引用任何一个字符串,就应该赋予个字符串,就应该赋予null。uString类对象所引用的字符串是常量,不能对类对象所引用的字符串是常量,不能对其字符串内容进行修改。其字符串内容进行修改。uString类提供了很多成员方法,可以通过这些类提供了很多成员方法,可以通过这些方法更方便、灵活地使用字符串。方法更方便、灵活地使用

10、字符串。 3. 字符串的长度和提取字符串内容字符串的长度和提取字符串内容u可以使用可以使用String类的类的length方法获得字符串的方法获得字符串的长度长度 u字符串是由字符序列构成,可以从中提取的内容字符串是由字符序列构成,可以从中提取的内容有两种情况:一是提取指定位置上的单个字符,有两种情况:一是提取指定位置上的单个字符,使用使用String类的类的charAt方法;二是提取其中连方法;二是提取其中连续的某些字符构成的子串,使用续的某些字符构成的子串,使用String类的类的substring方法。方法。u读程序,猜结果读程序,猜结果nOpString1.javau Java程序程序

11、设计设计11 System.out.println(Java.length(); String s = Welcom to Java; System.out.println(s.charAt(1)是是+s.charAt(1); System.out.println(s.substring(1,3)是是“+s.substring(1,3); System.out.println(s.substring(0,11) + C+是是“ +s.substring(0,10)+C+);4. 字符串的查找字符串的查找uindexOf方法返回方法返回s中第一次出现字符或字符串中第一次出现字符或字符串的下标。的

12、下标。ulastIndexOf方法返回方法返回s中最后一次出现字符或中最后一次出现字符或字符串的下标。字符串的下标。u读程序,猜结果读程序,猜结果nOpString2.javaJava程序程序设计设计13 String s = Welcom to Java; System.out.println(s.indexOf(e是是+s.indexOf(e); System.out.println(s.indexOf(Wel是是“ +s.indexOf(Wel); System.out.println(s.indexOf(wel是是“+s.indexOf(wel); System.out.println

13、(s.lastIndexOf(Wel是是“+s.lastIndexOf(Wel); System.out.println(s.indexOf(o是是“+s.indexOf(o); System.out.println(s.lastIndexOf(o是是“+s.lastIndexOf(o);5. 字符串的修改字符串的修改u虽然虽然String类描述的是不可变字符串,但是可类描述的是不可变字符串,但是可以使用一些对字符串内容进行修改的方法得到一以使用一些对字符串内容进行修改的方法得到一个新的字符串。个新的字符串。u读程序,猜结果读程序,猜结果nOpString3.javau Java程序程序设计设

14、计15 String s = Welcom to Java! ; System.out.println(s.toLowerCase()是是“+s.toLowerCase(); System.out.println(s.toUpperCase()是是“+s.toUpperCase(); System.out.println(s.trim()是是+s.trim(); System.out.println(s.replace(o,O)是是“+s.replace(o,O); System.out.println(s.replaceFirst(o,O)是是“+s.replaceFirst(o,O); S

15、ystem.out.println(s.replaceAll(o,O)是是“+s.replaceAll(o,O);6. 基本类型数据转换为字符串基本类型数据转换为字符串u使用使用String类的类的valueOf方法可以将任意基本方法可以将任意基本数据类型的值转换为字符串形式,其使用形式为:数据类型的值转换为字符串形式,其使用形式为: nString s = String.valueOf(基本数据类型表达基本数据类型表达式式); u读程序,猜结果读程序,猜结果nOpString4.javaJava程序程序设计设计17 boolean b = false; int i = 12345; doub

16、le d = 3.14159; System.out.println(String.valueOf(b)是是“+String.valueOf(b); System.out.println(String.valueOf(i)是是“+String.valueOf(i); System.out.println(String.valueOf(d)是是“+String.valueOf(d);课后工作课后工作u书本书本P.79n复习题复习题5.3,5.4n编程练习编程练习5.10Java程序设计程序设计18Java程序程序设计设计195.4.2 使用使用StringBuffer/StringBuilder

17、类处类处理字符串理字符串uStringBuffer/StringBuilder类提供对字符类提供对字符串的另一种处理方式,它们比串的另一种处理方式,它们比String类更加灵类更加灵活,可以在字符串上直接进行添加、插入和替换活,可以在字符串上直接进行添加、插入和替换等操作。等操作。u从从JDK5开始这两个类在使用方式是相同的,两开始这两个类在使用方式是相同的,两者区别是:如果编写多线程程序,使用者区别是:如果编写多线程程序,使用StringBuffer类;而编写单线程应用程序时,类;而编写单线程应用程序时,StringBuilder类的效率更高。类的效率更高。1. 创建创建StringBuff

18、er对象对象uStringBuffer描述的字符串缓冲区有一个重要描述的字符串缓冲区有一个重要的特性,称为的特性,称为“容量容量”,是指该缓冲区能够容纳,是指该缓冲区能够容纳字符的个数。字符的个数。 u创建创建StringBuffer对象的方式:对象的方式:nStringBuffer buffer = new StringBuffer(); 2. 修改缓冲区中的字符串修改缓冲区中的字符串u对字符串缓冲区进行的修改操作包括:在缓冲区对字符串缓冲区进行的修改操作包括:在缓冲区末尾追加新内容,在缓冲区的指定位置插入新内末尾追加新内容,在缓冲区的指定位置插入新内容,也可以删除和替换缓冲区的字符。在对缓冲容,也可以删除和替换缓冲区的字符。在对缓冲区进行追加和插入等操作时,如果缓冲区容量不区进行追加和插入等操作时,如果缓冲区容量不够了,缓冲区会自动扩容。够了,缓冲区会自动扩容。 u在缓冲区不可收拾追加新内容使用在缓冲区不可收拾追加新内容使用append方法,方法,该方法可以把各种基本数据类型、字符串等数据该方法可以把各种基本数据类型、字符串等数

温馨提示

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

评论

0/150

提交评论