Java2实用教程课件第五章_第1页
Java2实用教程课件第五章_第2页
Java2实用教程课件第五章_第3页
Java2实用教程课件第五章_第4页
Java2实用教程课件第五章_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章 字符串,字符串,5.1 字符串 5.2 字符串常用方法 5.3 字符串与基本数据的相互转化 5.4 对象的字符串表示 5.5 StringTokenizer 类 5.6 字符串与字符、字节数组 5.7 StringBuffer类,5.1 字符串,Java使用java.lang包中的String类来创建一个字符串变量,因此字符串变量是对象。 1.符串常量 如,“你好”,“1234.987”,“weqweo”。 2.创建字符串 使用String类的构造方法,例如: String s=new String(we are students);,5.1 String类,创建字符串常量String

2、对象(1/2),String类的构造方法: 1. public String( ) 用来创建一个空的字符串常量。 2. public String(String value) 利用一个已经存在的字符串常量创建一个新的String对象,该对象的内容与给出的字符串常量一致。这个字符串常量可以是另一个String对象,也可以是一个用双引号括起的直接常量。 3. public String(char value) 利用一个已存在的字符数组的内容初始化新建的String对象 4. public String(char value,int startIndex,int count) 提取字符数组的一部分字

3、符创建一个字符串对象,参数 startIndex和count指定提取字符的起始位置和结束位置。,测试String类构造方法,class TestString public static void main(String args) String a1 = new String(); String a2 = new String(Hello World!); char ch = s,t,b,u,s,n; String a3 = new String(ch); String a4 = new String(ch,2,3); System.out.println(a1=+a1); System.ou

4、t.println(a2=+a2); System.out.println(a3=+a3); System.out.println(a4=+a4); ,String a5=Hello World,注:(补充),字符串常量用String类的对象表示。字符串常量与字符常量的不同,字符常量是用单引号括起的单个字符,而字符串常量是用双引号括起的字符序列。 Java的字符串常量通常是作为String类的对象存在,有专门的属性来规定它的长度。实际上,对于所有用双引号括起的字符串常量,系统都会为它创建一个无名的String类型对象。,5.2 字符串的常用方法,1. 字符串长度 2. 比较两个字符串是否相同

5、3. 判断字符串的前缀和后缀 4. 字符串中单个字符的查找 5. 字符串中子串的查找 6. 比较两个字符串 7. 连接两个字符串,5.2 字符串的常用方法,1.字符串长度,public int length( ) 求字符串的长度,获得当前字符串对象中字符的个数,5.2 字符串的常用方法,2. 比较两个字符串是否相同,public boolean equals(String s) 比较当前字符串对象的实体是否与参数指定字符串s的实体相同。 public boolean equalsIgnoreCase(String anotherString); 方法equals是重载Object类的方法,它将

6、当前字符串与参数 列表中给出的字符串相比较,若两字符串相同,则返回真,否则返回假。方法equalsIgnoreCase与方法equals的用法相似,只是它比较字符串时将不计字母大小写的差别。,思考:,通过本程序思考tom=jerry 是false,而s1=s2是true?,通过本程序思考tom=jerry 是false,而s1=s2是true?,字符串常量是对象,把字符串常量的引用赋值给一个字符串变量,变量具有相同的引用。,5.2 字符串的常用方法,2.比较两个字符串,public int compareTo(String anotherString); 将当前字符串与一个参数字符串相比较,并

7、返回一个整型量。如果当前字符串与参数字符串完全相同,则返回0;如果当前字符串按字母序大于参数字符串,则返回一个大于0的整数;反之返回一个小于0的整数。,5.2 字符串的常用方法,3. 判断字符串的前缀和后缀,public boolean startsWith(String prefix); /前缀 public boolean endsWith(String suffix); /后缀 判断当前字符串的前缀或后缀是否是指定的字符子串,若是返回true,5.2 字符串的常用方法,4. 字符串中单个字符的查找(1/2),public int indexOf(int ch); 查找字符ch在当前字符串

8、中第一次出现的位置,即从头向后查找,并返回字符ch出现的位置。如果找不到则返回-1 public int indexOf(int ch, int fromIndex); 查找字符ch时,在当前字符串中自fromIndex位字符之后向后查找,并返回该字符首次出现的位置。,5.2 字符串的常用方法,4. 字符串中单个字符的查找(2/2),public int lastIndexOf(int ch); public int lastIndexOf(int ch, int fromIndex); 以上两个方法从字符串的结尾向字符串的开始部分查找指定字符 public char charAt(int i

9、ndex) 获取当前字符串中第index个字符并返回这个字符,5.2 字符串的常用方法,5. 字符串中子串的查找,public int indexOf(String str); public int indexOf(String str, int fromIndex); public int lastIndexOf(String str); public int lastIndexOf(String str, int fromIndex);,5.2 字符串的常用方法,6. 连接两个字符串,public String concat(String str); 将参数字符串连接在当前字符串的尾部,并

10、返回这个连接而成的长字符串,但是当前字符串本身并不改变。,5.2 字符串的常用方法,7. 获取子串,public String substring(int beginIndex) 获取一个当前字符串的子串,该子串是从当前字符串的 beginIndex 处截取到字符串的未尾处所得到的字符串。 public String substring(int beginIndex, int endIndex ) 获取一个当前字符串的子串,该子串是从当前字符串的 beginIndex 处截取到endIndex,但不包括endIndex 。,5.2 字符串的常用方法,8. 去空格,public String t

11、rim() 去掉字符串的前后空格,例子5.4 (上机测试结果),5.3 字符串与基本数据的相互转化,1.将String对象转化为int类型 public static int parseInt(String s);,2. 利用 java.lang包中的Byte、Short、Integer 、 Long、Float、Double类调相应的类方法: public static byte parseByte(String s) throws NumberFormatException public static short parseShort(String s) throws NumberForm

12、atException public static short parseInt(String s) throws NumberFormatException public static long parseLong(String s) throws NumberFormatException public static float parseFloat(String s) throws NumberFormatException public static double parseDouble(String s) throwNumberFormatException 将“数字”的字符串转化为

13、相应的基本类型。,5.3 字符串与基本数据的相互转化,3.基本类型转化为String类,例子:,例子5.5 求若干个数的平均数的例子,若干个数从键盘输入。程序除了输出平均数外,还输出整数123456的二进制和十六进制的串表示。,public class Example5_5 public static void main(String args) double n,sum=0,item=0; boolean computable=true; for(int i=0;i=0;i-) char c=str.charAt(i); /返回指定索引处的 char 值。 int a=Integer.par

14、seInt(“”+c); p=p+(int)(a*Math.pow(2,m); /返回第一个参数的第二个参数次幂的值 m+; System.out.println(str+的十进制表示:+p); ,例子5.5 运行结果,5.4 对象的字符串表示,在子类的讲述中我们讲过,所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个public 方法toString(),一个对象通过调用该方法可以获得该对象的字符串表示,例子 5.6,5.5 StringTokenizer类,当我们分析一个字符串并将字符串分解成可被独立使用的单词时,可以使用java.util包中的St

15、ringTokenizer类,该类有两个常用的构造方法:,StringTokenizer(String s) 为字符串s构造一个分析器。使用默认的分隔符集合,即空格符 (若干个空格被看做一个空格)、换行符、回车符、Tab符、 进纸符(f)。 StringTokenizer(String s, String delim) 为字符串s构造一个分析器。参数dilim中的字符被作为分隔符。,5.5 StringTokenizer类,我们把一个StringTokenizer对象称作一个字符串分析器。一个分析器可以使用nextToken()方法逐个获取字符串中的语言符号(单词),每当调用nextToken

16、()时,都将在字符串中获得下一个语言符号,每当获取到一个语言符号,字符串分析器中的负责计数的变量的值就自动减一,该计数变量的初始值等于字符串中的单词数目 使用while循环获取语言符号,为了控制循环用该的hasMoreTokens()方法。,例子 5.7,5.6 字符串与字符、字节数组,public void getChars(int start,int end,char c,int offset ) 字符串调用getChars方法将当前字符串中的一部分字符拷贝到参数c指定的数组中。将字符串中从位置start到end-1位置上的字符拷贝的数组c中,并从数组c的offset处开始存放这些字符。需

17、要注意的是,必须保证数组c能容纳下要被拷贝的字符。 public char toCharArray() 字符串对象调用该方法可以初始化一个字符数组,该数组的长度与字符串的长度相等,并将字符串对象的全部字符拷贝到该数组中。,例子 5.8 例子 5.9,上机测试,5.7 StringBuffer类,String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,那么实体是不可以再发生变化的.,String s = new String(“l love this game”);,不可以再发生改变,5.7 StringBuff

18、er类,StringBuffer类能创建可修改的字符串序列,也就是说,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符序列。,String s = new StringBuffer(“l love this game”); s.append(“ok”);,可以再发生改变,5.7 StringBuffer类,1. 创建字符串变量StringBuffer对象 2. 字符串变量的扩充、修改与操作 3. 字符串变量的赋值与拼接,5.7 StringBuffer类,1. 创建字符串变量StringBuffer对象,创建StringBuffer类的对象时并不一定要给出字符串初值, 其构造方法有以下几个: public StringBuffer( );

温馨提示

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

评论

0/150

提交评论