《java程序设计之网络编程(第2版)中ppt》由会员分享,可在线阅读,更多相关《java程序设计之网络编程(第2版)中ppt(285页珍藏版)》请在金锄头文库上搜索。
1、Java程序设计之网络编程(第2版),重庆大学计算机学院,教学课件,第1章 Java语言概述 第2章 数据类型及其运算 第3章 程序控制语句 第4章 面向对象程序设计基础 第5章 面向对象高级程序设计 第6章 字符串处理 第7章 Java标准类库 第8章 Java异常处理 第9章 输入输出处理 第10章 线程 第11章 GUI程序设计 第12章 Applet应用程序 第13章 JDBC 第14章 网络通讯,第六章 字符串处理,第六章 字符串处理,本章将介绍Java语言中字符串的处理技术。主要涉及在程序运行初始化后不能改变的字符串类String和字符串内容可以动态改变的类StringBuffer
2、,以及用于进行字符串词法分析类StringTokenizer。同时还将介绍字符串和其它数据类型间的转换。 在C/C+中,字符串是以字符数组的方式来处理的,以字符0作为字符串结束的标志,因此在进行字符串处理时比较容易发生错误。而Java则将字符串作为对象来处理,在对象中封装了一系列方法来进行字符串处理。利用Java字符串处理技术不仅可以减少程序设计的工作量,而且使程序编制更加规范,从而可以减少错误的发生。,第六章 字符串处理,6.1 String类 6.2 StringBuffer类 6.3 StringTokenizer类的应用 6.4 字符串与其他数据类型的转换,6.1 String类,6.
3、1.1字符串的构造 6.1.2 String类的常用方法,6.1.1字符串的构造,6.1.1字符串的构造,字符串的声明和其它类一样,如下格式 String s; 创建字符串可以使用String类的构造方法。例如: s=new String(“We are students”); s= “We are students”; 声明和实例化对象也可一步完成: String s=new String(“We are students“); String s=“We are students“;,6.1.1字符串的构造,例如: 1)在String类提供的构造方法中,可以由字符数组、字节数组以及字符串缓冲
4、区来构成字符串,如下面的代码所示。 char cDem0l=2,3,4,5; char cDem02=1,2,3,4,5; String strDem01=new String(cDem0l); String strDem02=new String(cDem02,1,4); System.out.println(strDem01+ strDem01 ); 利用上面的两个构造方法生成的字符串实例的内容均为“2345”。 2)下面例子说明如何利用字节数组生成字符串: byte cDem0l=66,67,68; byte cDem02=65,66,67,68; String strDem01=new
5、 String(cDem0l); String strDem02=new String(cDem02,1,3); 利用上面的两个构造方法生成的字符串实例的内容均为“BCD“。,6.1.2 String类的常用方法,String类提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。在这些方法中,按用途来分,可以分为字符串长度计算、字符串比较、字符串检索、字符串的截取、替换等方法,下面我们将详细介绍这些方法。,6.1.2 String类的常用方法,1、字符串长度计算 使
6、用String 类中的length()方法可以获取一个字符串的长度。length()方法的定义如下: public int length() 该方法返回字符串中的 16-bit 的 Unicode 字符的数量。 例如: String s= “we are students“,tom= “我们是学生“; int n1,n2,n3; n1=s.length(); / n1 的值是15 n2=tom.length(); / n2的值5 n3=”我的爱好”.length(); /n3值是4,6.1.2 String类的常用方法,2、字符串比较 字符串比较的方法有equals()、equalsIgnor
7、eCase()、startsWith(),endsWith()、regionMatches()、compareTo(),compareToIgnoreCase()等方法 (1)、equals和equalsIgnoreCase方法 在String类中equals()定义如下: public boolean equals(String s) 该方法用来比较当前字符串对象的实体是否与参数指定的字符串s的实体是否相同。例如 String tom=new String( “we are students“); String boy=new String( “We are students“); Stri
8、ng jerry= new String(“we are students“); tom.equals(boy)的值是false,tom.equals(jerry)的值是true.,6.1.2 String类的常用方法,在String类中equalsIgnoreCase ()定义如下: public boolean equalsIgnoreCase(String s) 字符串对象调用比较当前字符串对象是否与参数指定的字符串s 相同,比较时忽略大小写。例如: String tom =new String(“ABC”), Jerry=new String(“abc”); tom.equalsIgn
9、oreCase(Jerry)的值是true。 (2)、 startsWith、endsWith方法 字符串对象调用public boolean srartsWith(String s)方法,判断当前字符串对象的前缀是否是参数指定的字符串s,如 String tom= “220302620629021“,jerry= “21079670924022“; tom.startsWith(“220“)的值是true; jerry.startsWith(“220“)的值是false。,6.1.2 String类的常用方法,可以使用public boolean endsWith(String s) 方法,
10、判断一个字符串的后缀是否是字符串s,如 String tom= “220302620629021“, jerry= “21079670924022“; tom.endsWith(“021“)的值是true jerry.endsWith(“021“)的值是false.,6.1.2 String类的常用方法,【例6-1】 通过学号判断某学生是否是2004级的男生。假设某学生学号为“200400581”,前4位为学号,最后1位为性别标志位,0表示女生,1表示男生。程序如下: public class StringStart public static void main(String args) S
11、tring john=“200400581“,start=“2004“; if(john.startsWith(start) 程序的运行结果如下: 该生是2004级男学生。,6.1.2 String类的常用方法,(3)、 regionMatches方法 该方法的申明格式为: public boolean regionMatches(int firstStart,String other,int ortherStart,int length) 和 public boolean regionMatches(boolean b,int firstStart,String other,int orth
12、erStart,int length) 从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子串,并将这个子串和参数other 指定的一个子串进行比较。其中other 指定的子串是从参数othertStart 指定的位置开始,从other中取长度为length的一个子串。如果两个子串相同该方法就返回true,否则返回false。注意,字符串的位置编号从0开始。,6.1.2 String类的常用方法,(4)、 compareTo,compareToIgnoreCase方法 String类中中compareTo和compareToIgnoreCase方法申明的格式为:
13、public int compareTo(String s) public int compareToIgnoreCase(String s) compareTo方法,按字典顺序与参数s 指定的字符串比较大小。如果当前字符串与s 相同,该方法返回值0 ,如果当前字符串对象大于s,该方法返回正值,如果小于s,该方法返回负值。例如 String str= “abcde“; pareTo(“boy“); /小于0 pareTo(“aba”); /大于0 pareTo(“abcde”); /等于0 按辞典序比较两个字符串还可以使用compareToIgnoreCase(String s)方法, 该方法
14、忽略大小写,6.1.2 String类的常用方法,【例6-2】 将下面的字符串数组按字典序重新排列 public class SortStrs public static void main(String args) String a=“Java“,“Basic“,“C+“,“Fortran“,“SmallTalk“; for(int i=0;ia.length-1;i+) for(int j=i+1;ja.length;j+) if(pareTo(ai)0) String temp=ai; ai=aj; aj=temp; for(int i=0;ia.length;i+) System.ou
15、t.print(“ “+ai); 程序的运行结果如下: Basic C+ Fortran Java SmallTalk,class StringArray public static void main(String args) /定义字符串数组 String array = new String“This is a test“, “Theo Washer“, “the case is closed“, “tHe aLtErNaTiNg StRiNg“ ; System.out.println(“排序之前:“+“n“); /打印出排序之前的字符串数组 for (int i = 0; i array.length; i+) System.out.println(arrayi); System.out.println(“排序之后:“+“n“); /调用Arrays对象的方法对字符串数组进行排序 java.util.Arrays.sort(array, String.CASE_INSENSITIVE_ORDER); /打印出排序之后的字符串数组 for (int i = 0; i array.length; i+) System.out.println(arrayi); ,/7-5 MainA.java import java.util.*; class Main public sta