java课程第四章字符串

上传人:san****019 文档编号:70772715 上传时间:2019-01-18 格式:PPT 页数:36 大小:497.81KB
返回 下载 相关 举报
java课程第四章字符串_第1页
第1页 / 共36页
java课程第四章字符串_第2页
第2页 / 共36页
java课程第四章字符串_第3页
第3页 / 共36页
java课程第四章字符串_第4页
第4页 / 共36页
java课程第四章字符串_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《java课程第四章字符串》由会员分享,可在线阅读,更多相关《java课程第四章字符串(36页珍藏版)》请在金锄头文库上搜索。

1、,很高兴和大家再次合作 本学期用到两本教材,新教材在第8周左右开始用 讲义下载邮箱: 密码:java126,4.2字符串,4.2.1字符数组与字符串的区别 字符数组:由字符组成的数组,是一个数组 char z=h,e,l,l,o; 字符串:是一个String类的对象 String s1=“myString“;,4.2.2字符串常量和变量,一个字符串常量是用双引号包围的一串字符 如下面定义四个字符串,读者比较一下: String s1=“新年快乐“; String s2=“新年快乐“; String s3=new String(“新年快乐“); String s4=new String(“新年

2、快乐“); S1=“12e”; 则s1和s2是同一个对象,指向的是一个字符串常量“新年快乐”;指向的内存地址空间是一致的 s3,s4则是2个不同的变量。虽然有相同的内容,但是在内存的空间不同,常量,变量,4.2.6字符串比较,两个字符串比较时,从首字符开始逐个向后比较每个字符,如果一旦发现两个字符串的某个位置上的字母不相同时,则比较过程结束; 只有当两个字符串所包含的字符个数相等且对应位置的字符也相等(包括大小写),两个字符串才相等。,在比较两个字符串是否相等时,可使用boolean equals(Object obj)方法,用法如下: String s“student”; boolean b

3、=s. equals(“Student”); 第二行代码的b将会得到false值,因为“student”与“Student”的首个字母大小写不相等。 但是如果用另外一个函数boolean equalsIgnoreCase(String str)则将返回true值,因为该函数是忽略大小写的。 另外,有一个类似的方法为compareTo和compareToIgnoreCase,区别在于返回值为整数,稍后介绍,字符串不能用“=”号比较, 用“=”号比较字符串时,其实是在比较这两个字符串的地址,每个String类对象所占有的内存地址是不同的,所以这样得出的比较结果是false, String a=ne

4、w String(“节日快乐“); String b=new String(“节日快乐“); if (a=b) System.out.println(true); else System.out.println(false);,字符串a和b都有自己的独立空间保存字符串,虽然内容相同,但是地址不同,相同的字符串常量所占用的空间是一样的,所以下面的代码段输出结果是true。(参考4.2.1字符串常量) String a=“节日快乐“; String b=“节日快乐“; if (a=b) System.out.println(true); else System.out.println(false)

5、;,字符串a和b都指向字符串常量“a”,地址相同,内容自然也相同,4.2.3 String类构造方法和常用方法,1. String常用构造函数方法 String常用构造函数如下,有很多种方法可以产生一个String类字符串。 (1). public String() 这个构造函数用来创建一个空的字符串常量。 如:String test=new String(); test”Hello World”; (2)public String(String value ) 这个构造函数用一个已经存在的字符串常量作为参数来创建一个新的字符串常量。 如:String test=new String(“Hel

6、lo, world.“);,字符串可以这样赋值,红色表示上机作业中将用到,4.2.3 String类构造方法和常用方法,(3)public String( char value ) 这个构造函数用一个字符数组作为参数来创建一个字符变量, 用法如下: char z=h,e,l,l,o; String test=new String(z);(注:此时test中的内容为“hello”) (4)public String( char value, int offset, int count ) 猜猜这个函数声明意思 用代码验证一下! 从offset开始取count个字符 构成一个字符串 注意:数组中,

7、下标0表示第一个元素,1表示第二个元素如果起始点offset 或 截取数量count 越界,将会产生异常 StringIndexOutOfBoundsException。,2.String类常见的方法,(1) public char charAt( int index ) 这个方法用来获取字符串常量中的一个字符。参数index指定从字符串中返回第几个字符,这个方法返回一个字符型变量。用法如: String s=“hello“; char k=s.charAt(0);/此时k的值为h (2)toLowerCase() 将所有的字符转换为小写形式。 (3)toUpperCase() 将所有的字符转

8、换为大写形式。,(4)SubString(int beginIndex) 截取当前字符串中从beginIndex开始到末尾的子串。 (5)public int compareTo( String anotherString ) 这个方法用来比较字符串常量的大小,参数anotherString为另一个字符串常量。 若两个字符串常量一样,返回值为0。 若当前字符串常量大,则返回值大于0。 若另一个字符串常量大,则返回值小于0。用法如: String s1=“abc“; String s2=“abd“; int result=pareTo(s1); /result的值大于0,因为d在ascII码中排

9、在c的后面,则s2s1,(6)public String concat( String str ) 这个方法将把参数字符串常量str 接在当前字符串常量的后面,生成一个新的字符串常量,并返回。用法如: String s1=“How do “; String s2=“you do?“; String ss=s1.concat(s2);/ss的值为“How do you do?“ 另外,系统还提供了实现连接的简单操作,即重载运算符“+”。“+”除了能实现数值加法外,还可连接它的两个操作数。只要“+”的两个操作数中有一个是字符串,则另一个也自动变为字符串类型。,(19)public int leng

10、th() 这个方法返回字符串常量的长度,这是最常用的一个方法。用法如: String s=“abc“; int result=s.length(); / result的值为3 (20) public char toCharArray() 这个方法将当前字符串常量转换为字符数组,并返回。用法如: String s=“Who are you?“; char z=s.toCharArray();,上机作业,判断某字符串下标为奇数的字符所组成的字符串与下标为偶数的字符所组成的字符串是否相等,提示,如何取一个字符串 单号字符? 如何赋值给另一个字符数组,思考:,3步和6步的两个循环是否可以合并?如果可以

11、,试着将合并后的循环代码写在下面 第3步:用+号的时候,左右两边的操作数类型不同,分别为字符串和字符,为什么也可以加,是什么原理?( 提示:查看教材concat函数后的提示) 第3步不用+号还可以用哪个函数,是否还要进一步考虑什么问题?试着写代码实现 查教材 写出所有字符串和字符串数组相互转换的函数 为什么Iiaammssttuuddeenntt结果为-32,代表什么意思? Iiaammssttuuddeenntt的结果是什么?代表什么意思? IIaAmmssttuuddeenntt的结果是什么?代表什么意思? 将上机作业代码和上面5个题目答案交作业至12号楼402,2周讲,上机作业参考答案,

12、public class work1 public static void main(String args) String str1=“IIAAmmssttuuddeenntt“; String str2=“; for (int i=0;istr1.length();i=i+2) str2=str2+str1.charAt(i); System.out.println(str2); int len=str1.length(); char arr=new charlen/2; int j=0; for (int i=1;istr1.length();i=i+2) arrj=str1.charA

13、t(i); j+; String str3=new String (arr); System.out.println(str3); int result=pareTo(str3); System.out.println(result); ,思考题答案,3步和6步的两个循环是否可以合并?如果可以,试着将合并后的循环代码写在下面,可以,package ch4.zj09_2files.week1; public class work1plus /* * param args * 2、判断某字符串下标为奇数的字符所组成的字符串与 * 下标为偶数的字符所组成的字符串是否相等。 */ public sta

14、tic void main(String args) / TODO Auto-generated method stub String str1=“IIAAmmssttuuddeenntt“; String str2=“; int len=str1.length(); char arr=new charlen/2; int j=0; for (int i=0;istr1.length();i=i+1) if (i%2=0)/偶数字符 str2=str2+str1.charAt(i); else/奇数字符 arrj=str1.charAt(i); j+; System.out.println(s

15、tr2); String str3=new String (arr); System.out.println(str3); int result=pareTo(str3); System.out.println(result); ,int j=0; for (int i=0;istr1.length();i=i+1) if (i%2=0)/偶数字符 str2=str2+str1.charAt(i); else/奇数字符 arrj=str1.charAt(i); j+; ,2:第3步:用+号的时候,左右两边的操作数类型不同,分别为字符串和字符,为什么也可以加,是什么原理?( 提示:查看教材con

16、cat函数后的提示),“+”除了能实现数值加法外,还可连接它的两个操作数。只要“+”的两个操作数中有一个是字符串,则另一个也自动变为字符串类型,3、第3步不用+号还可以用哪个函数,是否还要进一步考虑什么问题?试着写代码实现 concat函数,str2=str2.concat(str1.subString(i,i+1);,代码目的:将i位置上的字符链接到str2字符串的后面,如果不用加号,可以用上面的方法替代 比较麻烦 ,要一层一层的想,去套用String中的参数,char tmp=new char1; tmp0=str1.charAt(i); str2=str2.concat(new String(tmp);,(3)public

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号