资源预览内容
第1页 / 共139页
第2页 / 共139页
第3页 / 共139页
第4页 / 共139页
第5页 / 共139页
第6页 / 共139页
第7页 / 共139页
第8页 / 共139页
第9页 / 共139页
第10页 / 共139页
亲,该文档总共139页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java程序设计第7章 字符串和文本I/O1楚雄师范学院计算机科学系 java程序设计课程学习目标 1.掌握String类处理固定字符串的方法;(重) 2.掌握Character类处理单个字符的方法; 3.掌握StringBuilder/StringBuffer类处理 可变字符串的方法;(重、难) 4.了理String、StringBuilder和 StringBuffer的区别; 5.理解Java处理文本文件的方法,掌握使用 File类获得文件的属性、删除和重命名文件 的方法;(重)2楚雄师范学院计算机科学系 java程序设计课程学习目标 6.掌握PrintWriter类向文件写数据的方法;( 重) 7.掌握使用Scanner类从文件读数据的方法 ;(重)3楚雄师范学院计算机科学系 java程序设计课程内容摘要 7.1 引言 7.2 字符串类String 7.3 字符类Character 7.4 StringBuilder/StringBuffer类 7.5 命令行参数4楚雄师范学院计算机科学系 java程序设计课程内容摘要 7.6 文件类File 7.7 文本I/O5楚雄师范学院计算机科学系 java程序设计课程内容摘要 7.1 7.1 引言引言 7.2 字符串类String 7.3 字符类Character 7.4 StringBuilder/StringBuffer类 7.5 命令行参数6楚雄师范学院计算机科学系 java程序设计课程7.1 引言 所谓字符串就是一个字符序列。 在许多高级语言中,字符串被处理为字符的 数组。 在Java中,字符串是对象。Java提供了 String类、StringBuilder和StringBuffer 类来存储和处理字符串。 在大多数情况下,使用String类创建、存储 和处理字符串是非常有效的,但是,用 String创建的字符串不能被修改。7楚雄师范学院计算机科学系 java程序设计课程7.1 引言 StringBuilder和StringBuffer类创建的字 符串是可变的。 本章还要介绍如何处理main方法的命令行参 数,以及如何使用Scanner类和 PrintWriter类进行简单的文本输入输出。8楚雄师范学院计算机科学系 java程序设计课程内容摘要 7.1 引言 7.2 7.2 字符串类字符串类StringString 7.3 字符类Character 7.4 StringBuilder/StringBuffer类 7.5 命令行参数9楚雄师范学院计算机科学系 java程序设计课程7.2 字符串类 String类有11个构造方法和40多个方法, 这些方法用于检验字符序列(即字符串)中 的单个字符、比较字符串、查找子串、提取 子串、将全部字符串转换成大写或小写的新 字符串。10楚雄师范学院计算机科学系 java程序设计课程7.2.1 构造一个字符串 构造一个字符串的语法格式为: String =new String(); 例如: String message=new String(“welcome to Java”); 对字符串,可以使用下列语句: String message=“welcome to Java”;11楚雄师范学院计算机科学系 java程序设计课程7.2.1 构造一个字符串 也可以使用字符数组构造字符串: Char chrArray=G,o,o,d; String message=new String(chrArray); 注意: String变量存储String对象的引用,而String 对象存储串值。12楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串 String对象是不可变的,它的内容不能改变 。 例如: String s=“Java”; s=“HTML”; 首先,第一句创建了一个内容为“Java”的 String对象,并将其引用赋值给s; 然后,第二句创建了内容为“HTML”的 String对象,并将其引用赋值给s。此后, “Java”对象仍然存在。如图7-1所示:13楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串14楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串 字符串是不可变的又被频繁地使用,为了提 高Java虚拟机的效率和节约内存,当字符串 直接量具有相同的字符序列时,使用唯一的 实例来处理。这样的实例称被限定的。 可以通过String对象的intern方法返回一个 限定字符串。 例如:15楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串 String s=“Java”; String s1=new String(“Java”); String s2=s1.intern; String s3=“Java”;16楚雄师范学院计算机科学系 java程序设计课程7.2.3 字符串的比较 由于字符串被处理为对象,所以,要比较两 个字符是否相等就不能使用运算符“=”来进 行。 事实上,运算符“=”用于判断是否是引用同 一个对象。例如:17楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串 String s=“Java”; String s1=new String(“Java”); String s2=s1.intern; String s3=“Java”; System.out.println(“s1=s 是”+(s1=s); System.out.println(“s3=s 是”+(s3=s); 显示:18楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串 s1=s是false s3=s是true19楚雄师范学院计算机科学系 java程序设计课程7.2.3 字符串的比较 要判断两个字符串变量是否具有相同的内容, 可以使用equals()方法来完成。 例如: String s=“Java”; String s1=new String(“Java”); String s2=s1.intern; String s3=“Java”; System.out.println(“s1.equals(s)是 ”+(s1.equals(s); System.out.println (“s3.equals(s)是 ”+(s3.equals(s); 显示: 20楚雄师范学院计算机科学系 java程序设计课程7.2.2 不可变字符串与限定字符串 s1=s是true s3=s是true21楚雄师范学院计算机科学系 java程序设计课程7.2.3 字符串的比较 比较两个字符是否相等,还可以使用 compareTo方法来进行: S1.compareTo(s2) 当s1等于s2时,它返回0; 当s1小于(字典序)s2时,它返回判断过程中 小于字符距离值的负数; 当s1大于(字典序)s2时,它返回判断过程中 大于字符距离值的正数;22楚雄师范学院计算机科学系 java程序设计课程7.2.3 字符串的比较 例如:设s1为”abc”,s2为”abc”,则 S1.compareTo(s2)返回值为0; 设s1为”abc”,s2为”abg”,则 S1.compareTo(s2)返回值为-4; 设s1为”abg”,s2为”abc”,则 S1.compareTo(s2)返回值为4。23楚雄师范学院计算机科学系 java程序设计课程7.2.3 字符串的比较 String类还提供了一些方法来比较字符串: equalsIgnoreCase:比较两个字符串是否相 等,忽略字母的大小写; regionMatches:比较两个字符串的某一部 分是否相等; str.startsWith(prefix):检测str是否以指 定前缀prefix开始; str.endsWith(suffix):检测str是否以指定 后缀suffix结束。24楚雄师范学院计算机科学系 java程序设计课程7.2.4 字符串长度以及提取单个字符 字符串长度可以通过调用length()方法来获 得。 例如,设字符串s的内容为”Welcome to Java”,则 s.length()返回15。 从字符串中指定位置提取一个字符可以通过 调用charAt()方法来进行,其中字符串的位 置从0开始计算,最后一个字符的位置为 length()-1。25楚雄师范学院计算机科学系 java程序设计课程7.2.4 字符串长度以及提取单个字符 例如,设字符串s的内容为”Welcome to Java”,则 s.charAt(0)返回字符W; s.charAt(8)返回字符t; s.charAt(s.length()出错。26楚雄师范学院计算机科学系 java程序设计课程7.2.5 字符串的连接 可以使用concat()方法连接两个字符串。 例如,设字符串s1的内容为”Welcome to”,s2的内容为” Java”,则 String s3=s1.concat(s2); 产生s3为”Welcome to Java”. 也可以使用加号(+)来连接两个字符串: String s3=s1+s2;27楚雄师范学院计算机科学系 java程序设计课程7.2.6 提取子串 可以使用substring()方法来提取子串,其格式 为: substring(beginIndex,endIndex); 功能: 当有endIndex值时,从字符串中返回其位置 从beginIndex开始到endIndex止的子串; 当没有endIndex值时,从字符串中返回其位 置从beginIndex开始到结束止的子串。 例如:28楚雄师范学院计算机科学系 java程序设计课程7.2.6 提取子串 例如,设字符串s的内容为”Welcome to Java” ,则 s.substring(8,11)返回子字符串(对象)”to J”; s.substring(11)返回子字符串(对象)”Java”。29楚雄师范学院计算机科学系 java程序设计课程7.2.7 字符串的转换 字符串对象一旦建立,它的内容就不能改变。 但是,可以使用toLowerCase、toUpperCase 、trim和replace方法得到一个新的字符串,其 中 toLowerCase和toUpperCase方法将字符串中 的所有字符都转换成大写或小写,由此获得新 的字符串, trim方法通过去除两端空格来获得新字符串, replace(oldChar,newChar)把原字符串中 oldChar用newChar替代而获得新的字符串。 30楚雄师范学院计算机科学系 java程序设计课程7.2.7 字符串的转换 例如: “Welcome”.toLowerCase()返回一个新字符串 ”welcome”; “Welcome”.toUpperCase()返回一个新字符串 ”WELCOME”; “ Welcome ”.trim()返回一个新的字符串 ”Welcome”; “Welcome”.replace(”e”,”A”)返回一个新的字 符串“WAlcomA”。31楚雄师范学院计算机科学系 java程序设计课程7.2.8 获取字符串中的一个字符或子串 利用
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号