1 / 49

《 Java 程序设计之网络编程 》

《 Java 程序设计之网络编程 》. 教学课件. 重庆大学计算机学院 电子邮件: lizhx@126.com. 第 6 章 字符串处理. 主要内容. 本章将介绍 Java 语言中字符串的处理技术。主要涉及在程序运行初始化后不能改变的字符串类 String 和字符串内容可以动态改变的类 StringBuffer ,以及用于进行字符串词法分析类 StringTokenizer 。同时还将介绍字符串和其它数据类型间的转换。

ringo
Download Presentation

《 Java 程序设计之网络编程 》

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《Java程序设计之网络编程》 教学课件 重庆大学计算机学院 电子邮件:lizhx@126.com

  2. 第6章 字符串处理

  3. 主要内容 • 本章将介绍Java语言中字符串的处理技术。主要涉及在程序运行初始化后不能改变的字符串类String和字符串内容可以动态改变的类StringBuffer,以及用于进行字符串词法分析类StringTokenizer。同时还将介绍字符串和其它数据类型间的转换。 • 在C/C++中,字符串是以字符数组的方式来处理的,以字符’\0’作为字符串结束的标志,因此在进行字符串处理时比较容易发生错误。而Java则将字符串作为对象来处理,在对象中封装了一系列方法来进行字符串处理。利用Java字符串处理技术不仅可以减少程序设计的工作量,而且使程序编制更加规范,从而可以减少错误的发生。

  4. 第六章 字符串处理 6.1 String类 6.2 StringBuffer类 6.3 StringTokenizer类的应用 6.4 字符串与其他数据类型的转换

  5. 6.1 String类 6.1.1字符串的构造 6.1.2 String类的常用方法

  6. 6.1.1字符串的构造

  7. 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";

  8. 6.1.1字符串的构造 例如: 1)在String类提供的构造方法中,可以由字符数组、字节数组以及字符串缓冲区来构成字符串,如下面的代码所示。 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 String(cDem0l); String strDem02=new String(cDem02,1,3); 利用上面的两个构造方法生成的字符串实例的内容均为"BCD"。

  9. 6.1.2 String类的常用方法 String类提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。在这些方法中,按用途来分,可以分为字符串长度计算、字符串比较、字符串检索、字符串的截取、替换等方法,下面我们将详细介绍这些方法。

  10. 6.1.2 String类的常用方法 1、字符串长度计算 使用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

  11. 6.1.2 String类的常用方法 2、字符串比较 字符串比较的方法有equals()、equalsIgnoreCase()、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"); String jerry= new String("we are students"); tom.equals(boy)的值是false,tom.equals(jerry)的值是true.

  12. 6.1.2 String类的常用方法 在String类中equalsIgnoreCase ()定义如下: public boolean equalsIgnoreCase(String s) 字符串对象调用比较当前字符串对象是否与参数指定的字符串s 相同,比较时忽略大小写。例如: String tom =new String(“ABC”), Jerry=new String(“abc”); tom.equalsIgnoreCase(Jerry)的值是true。 (2)、 startsWith、endsWith方法 字符串对象调用public boolean srartsWith(String s)方法,判断当前字符串对象的前缀是否是参数指定的字符串s,如 String tom= "220302620629021",jerry= "21079670924022"; tom.startsWith("220")的值是true; jerry.startsWith("220")的值是false。

  13. 6.1.2 String类的常用方法 可以使用public boolean endsWith(String s)方法,判断一个字符串的后缀是否是字符串s,如 String tom= "220302620629021", jerry= "21079670924022"; tom.endsWith("021")的值是true jerry.endsWith("021")的值是false.

  14. 6.1.2 String类的常用方法 【例6-1】通过学号判断某学生是否是2004级的男生。假设某学生学号为“200400581”,前4位为学号,最后1位为性别标志位,0表示女生,1表示男生。程序如下: public class StringStart{ public static void main(String args[]){ String john="200400581",start="2004"; if((john.startsWith(start)) && (tom.endsWith("1"))) System.out.println("该生是2004级男学生。"); else System.out.println("该生不是2004级女学生。"); } } 程序的运行结果如下: 该生是2004级男学生。

  15. 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 ortherStart,int length) 从当前字符串参数firstStart指定的位置开始处,取长度为length的一个子串,并将这个子串和参数other 指定的一个子串进行比较。其中other 指定的子串是从参数othertStart 指定的位置开始,从other中取长度为length的一个子串。如果两个子串相同该方法就返回true,否则返回false。注意,字符串的位置编号从0开始。

  16. 6.1.2 String类的常用方法 (4)、 compareTo,compareToIgnoreCase方法 String类中中compareTo和compareToIgnoreCase方法申明的格式为: public int compareTo(String s) public int compareToIgnoreCase(String s) compareTo方法,按字典顺序与参数s 指定的字符串比较大小。如果当前字符串与s 相同,该方法返回值0 ,如果当前字符串对象大于s,该方法返回正值,如果小于s,该方法返回负值。例如 String str= "abcde"; str.compareTo("boy"); //小于0 str.compareTo(“aba”); //大于0 str.compareTo(“abcde”); //等于0 按辞典序比较两个字符串还可以使用compareToIgnoreCase(String s)方法, 该方法忽略大小写

  17. 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;i<a.length-1;i++){ for(int j=i+1;j<a.length;j++){ if(a[j].compareTo(a[i])<0){ String temp=a[i]; a[i]=a[j]; a[j]=temp; } } } for(int i=0;i<a.length;i++) { System.out.print(" "+a[i]); }}} 程序的运行结果如下: Basic C++ Fortran Java SmallTalk

  18. 6.1.2 String类的常用方法 3、字符串检索 搜索指定字符或字符串在字符串中出现的位置,用于字符或字符串在字符串中的定位。方法申明格式如下: public int indexOf(int ch) public int indexOf(int ch,int fromIndex) public int indexOf(String str) public int indexOf(String str,int fromIndex) 上述四个重载的方法分别用于在字符串中定位指定的字符和字符串,并且在方法中可以通过fromIndex来指定匹配的起始位置。如果没有检索到字符或字符串,该方法返回的值是-1。如下面代码所示。 String strSource="I love Java"; int nPosition; nPosition=strSource.indexOf(‘v’); // nPosition的值为:4 nPosition=strSource.indexOf(‘a’,9); // nPosition的值为:11 nPosition=strSource.indexOf("love"); // nPosition的值为:2 nPosition=strSource.indexOf("love",0); // nPosition的值为:2

  19. 6.1.2 String类的常用方法 另外,String类还提供字符串中的最后位置的定位,方法申明格式如下: public int lastIndexOf(int ch) public int lastIndexOf(int ch,int fromlndex) public int lastIndexOf(String str) public int lastIndexOf(String str,int fromIndex) 上述四个重载的方法分别用于在字符串中定位指定的字符和字符串最后出现的位置,并且在上述方法中可以通过fromIndex来指定匹配的起始位置。如果没有检索到字符或字符串,该方法返回的值是-1。

  20. 6.1.2 String类的常用方法 5、字符串的替换 在String类中字符串替换的申明格式如下: public String replace(char oldChar,char newChar) 字符串对象s调用该方法可以获得一个串对象,这个串对象是用参数newChar 指定的字符替换s 中由oldChar 指定的所有字符而得到的字符串。 public String replaceAll(String old ,String new) 字符串对象s调用该方法可以获得一个串对象,这个串对象是通过用参数new指定的字符串替换s 中由old 指定的所有字符串而得到的字符串。 public String trim() 一个字符串s 通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 如下面的代码所示: String s= "I mist theep "; Strong temp=s.replace( t , s ); //结果是“I miss sheep" String s=" I am a student "; String temp=s.trim(); //结果是"I am a student"

  21. 6.1.2 String类的常用方法 4、字符串的截取 在字符串中截取子字符串,其申明格式如下: public String substring(int beginIndex) 该方法将获得一个当前字符串的子串,该子串是从当前字符串的beginIndex处截取到最后所得到的字符串。 public String substring(int beginIndex,int endIndex) 该方法将获得一个当前字符串的子串,该子串是从当前字符串的beginIndex处截取到endIndex-1结束所得到的字符串。 如下面的代码所示: String strSource=new String("Java is interesting"); String strNewl=strSource.substring(5); // strNew1=”is interesting” String strNew2 =strSource.substring(5,6); // strNew2=”i”

  22. 6.1.2 String类的常用方法 5、字符串的替换 在String类中字符串替换的申明格式如下: public String replace(char oldChar,char newChar) 字符串对象s调用该方法可以获得一个串对象,这个串对象是用参数newChar 指定的字符替换s 中由oldChar 指定的所有字符而得到的字符串。 public String replaceAll(String old ,String new) 字符串对象s调用该方法可以获得一个串对象,这个串对象是通过用参数new指定的字符串替换s 中由old 指定的所有字符串而得到的字符串。 public String trim() 一个字符串s 通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 如下面的代码所示: String s= "I mist theep "; Strong temp=s.replace( t , s );//结果是“I miss sheep" String s=" I am a student "; String temp=s.trim(); //结果是"I am a student"

  23. 6.1.2 String类的常用方法 6.其他命令 (1) 字符串大小写转换,申明格式如下: public String toUpperCase(Locale locale) //仅对指定位置进行转换 public String toUpperCase() public String toLowerCase(Locale locale) //仅对指定位置进行转换 public String toLowerCase() (2) 转换为字符串数组,申明格式如下: public char[ ] toCharArray( ) (3) 字符串到字符数组之间的转换,申明格式如下: getChars(int srcBegin,int srcEnd,char[ ] dst,int dstBegin) (4) 连接两个字符串,申明格式如下: public String concat(String str) 该方法用于将两个字符串连接在一起,与字符串的“+”操作符功能相同。

  24. 6.1.2 String类的常用方法 【例6-3】 String类简单方法的调用 public class AccesString{ public static void main(String args[]) { int n1,n2,n3; String ko="Visual Baisc",La="java",s1,s2,s3,s4="C++"; s1=ko.concat(La); s2 = s1.substring (7, 16); s3=ko.replace('s','x'); n1=s1.length(); n2=s1.indexOf(La); n3=s1.lastIndexOf("Visual"); System.out.println(s1); System.out.println(s2); System.out.println(s3); System.out.println(n1); System.out.println(n2); System.out.println(n3); } } 运行结果如下: Visual Baiscjava Baiscjava Vixual Baixc 16 12

  25. 第六章 字符串处理 6.1 String类 6.2 StringBuffer类 6.3 StringTokenizer类的应用 6.4 字符串与其他数据类型的转换

  26. 6.2 StringBuffer类 • 一个String型变量一旦经过初始化,就不能被改变了。为什么它作为一个变量而又不能被改变呢?其实变量只是一个代表某个内存区域的引用符号,用来访问或修改它所指向的内存空间。在String型变量的情况下,String型变量所指向的内存空间中的内容是不能被改变的,这是Java语言规范规定的。但是该变量可用于指向另外的内存空间。下列代码说明了这一点: • String s=new String("Hello"); • s=“Hello World”; //现在s指向内存中的新位置 • 在实际应用中,经常会遇到对字符串内容进行动态修改。在这种情况下,String类在功能受到限制。Java提供了StringBuffer类来实现对字符串内容进行动态修改功能。根据StringBuffer类中提供成员方法分类,StringBuffer类主要用于完成字符串的动态添加、插入、替换等操作。

  27. 6.1 String类 6.2.1 StringBuffer类的构造 6.2.2 StringBuffer类的常用方法

  28. 6.2.1 StringBuffer类的构造 StringBuffer类对象的申明和String类对象的申明再形式上是一样的,如下: StringBuffer s; // 申明s为StringBuffer对象 s =new StringBuffer("Hello"); // 实例化 s.setCharAt(1,'o'); //调用方法,将”Hello”变成“Hollo” StringBuffer类提供了三种构造方法,其格式如下: • public StringBuffer() 构造一个不包含字符的字符串缓冲区,其初始的容量设为 16 个字符。 • public StringBuffer(int) 构造一个不包含字符的字符串缓冲区,其初始容量由参数设定。 • public StringBuffer(String) 构造一个字符串缓冲区,来表示和字符串参数相同的字符序列。 字符串缓冲区的初始容量为16加上字符串参数的长度。

  29. 6.2.2 StringBuffer类的常用方法 StringBuffer类主要用于完成字符串的动态添加、插入、替换等操作 1.添加操作append() 该功能主要由StringBuffer类中成员方法append完成,其作用就是将一个字符添加到另一个字符串缓冲区的后面。在应用中,如果添加字符的长度超过字符串缓冲区的的长度,则字符串缓冲区自动将长度进行扩充。 下面为append方法的申明格式说明: public StringBuffer append(boolean b) public StringBuffer append(char c) 。。。。。。 public StringBuffer append(String str) 上面列举的构造方法,可用来向字符串缓冲区添加逻辑变量、字符、字符数组、双精度数、浮点数、整型数、长整型数、对象类型的字符串和字符串等。上述方法的返回类型均为StringBuffer。 例如: StringBuffer sbfSource=new StringBuffer("1+2=”); int nThree=3; sbfSource.append(nThree); System.out.println(sbfSource.toString( )); 输出结果为: 1+2=3

  30. 6.2.2 StringBuffer类的常用方法 2.插入操作 下面为insert方法的申明: public StringBuffer insert(intoffset,Boolean b) public synchronized StringBuffer insert(int offset,char[] str) public synchronized StringBuffer insert(int index,char[] sb, int offset,int len) 。。。。。。。。 public synchronized StringBuffer insert(int offset,String str) 字符串缓冲区StringBuffer的插入操作主要用于动态地向StringBuffer中添加字符。根据构造方法中的参数类型,可以向字符串缓冲区插入逻辑变量、字符、字符数组、双精数、浮点数、整型数、长整型数、对象类型的字符串和字符串等。上述方法的返回类型为StringBuffer。 例如: StringBuffer sbfSource=new StringBuffer("1+=2"); int nOne=1; sbfSource.insert(2,nOne); System.out.println(sbfSource.toString()); 输出结果为:1+1=2

  31. 6.2.2 StringBuffer类的常用方法 3.字符串缓冲区与字符串之间的转换 toString() 将字符串缓冲区转换为字符串,该方法返回类型为字符串。该方法是从缓冲区字符串向字符串转换的方法,十分重要。 4. 取字符 (1) charAt(int index) 取得指定位置的字符。返回值类型为字符char。位置编号从0开始。 下面的代码段为charAt方法的例子: StringBuffer sbfSource=new StringBuffer(10); sbfSource.append("My"); char c=sbfSource.charAt(0); // ’M’ (2) getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) 赋值指定位置的字符到字符串数组dst. 无返回值。 下面的代码段为getChars方法的例子: StringBuffer sbfSource=new StringBuffer("You are the best!"); char[] str; sbfSource.getChars(0,2,str,0); // “Yo”

  32. 6.2.2 StringBuffer类的常用方法 5. 删除字符 (1)、delete(int start,int end) 删除字符串缓冲区中起始序号为start、终止序号为end-1的字符,方法的返回类型为StringBuffer。 下面的代码段为delete方法的例子: StringBuffer sbfSource=new StringBuffer("You are the best"); sbfSource.delete(0,3); // are the best! (2)、deleteCharAt(int index) 删除字符串缓冲区中指定位置的字符,方法的返回类型为StringBuffer。

  33. 6.2.2 StringBuffer类的常用方法 6.重设字符串长度 public void ensureCapacity(int minimumCapacity) 该方法重新设置字符串缓冲区的长度。但必须保证缓冲区的容量至少等于指定的最小数。如果字符串缓冲区的当前容量少于该参数,则分配一个新的更大的内部缓冲区。 新容量将取如下参数中较大的一个: 参数 minimumCapacity 。 旧容量的两倍加 2. 如果参数 minimumCapacity 非正,该方法不作任何操作,只简单地返回。 public void SetLength(int newLength) 该方法将重新设置字符串缓冲区的长度。设置该字符串缓冲区的长度时,如果参数 newLength 小于该字符串缓冲区的当前长度。 该字符串缓冲区将被截断来包含恰好等于由参数 newLength 给出的字符数。

  34. 6.2.2 StringBuffer类的常用方法 7.内容替换 public StringBuffer replace(int start,int end,String str) 将字符串缓冲区中起始位置为start、终止位置为end的字符替换为由字符串str指定的内容,方法返回类型为StringBuffer。 下面的代码段为replace方法的例子: StringBuffer sbfSource=new StringBuffer("You are the best!"); Stringstr=new String("I'm"); sbfSource.replace(0,7,str); // I'm the best!

  35. 6.2.2 StringBuffer类的常用方法 8.取子串 (1) publuc String substring(int start,int end) 取得字符串缓冲区中起始位置为start、终止位置为end的内容,方法返回类型为String。下面的代码段为subString方法的例子: StringBuffer sbfSource=new StringBuffer("You are the best!"); String str=SbfSource.substring(0,2); // Yo (2) publuc String substring(int start) 取得字符串缓冲区中从起始位置为start直至字符串缓冲区结束的所有字符,方法还回类型为String。 9.字符串反转 public StringBuffer reverse() 将字符串序列进行反转,结果为StringBuffer。 下面的代码段为reverse方法的例子: StringBuffer sbfSource=new StringBuffer("You are the best!"); String str=SbfSource.reverse(); // !tseb eht era uoY

  36. 6.2.2 StringBuffer类的常用方法 10.获取长度 (1)、 public int capacity() 用于得到目前字符串缓冲区的剩余长度,该方法的返回类型为整数。 下面的代码段为capacity方法的例子: StringBuffer sbfSource=new StringBuffer(10); SbfSource.append("you"); System.out.println("字符串缓冲区的剩余长度为:”+sbfSource.capacity()); 输出结果为:字符串缓冲区的剩余长度为:10 (2)、public int length( ) 用于得到字符串缓冲区的长度。该方法的返回类型为整数。 下面的代码段为length方法的例子: StringBuffer sbfSource=new StringBuffer(10); SbfSource.append("you"); System.out.println(“字符串缓冲区的长度为:”+sbfSource.length( )); 输出结果为: 字符串缓冲区的剩余长度为:3

  37. 6.2.2 StringBuffer类的常用方法 【例6-4】将字符串反转。 //Reverse.java public class Reverse { public static void main(String args[]){ String strSource = new String(“I love Java”); String strDest = reverseIt ( strSource ); System.out.println(strDest); } public static String reverseIt(String source) { int i, len = source.length(); StringBuffer dest = new StringBuffer(len); for (i = (len - 1); i >= 0; i--) dest.append(source.charAt(i)); return dest.toString(); } } 程序运行结果如下: avaJ evol I

  38. 第六章 字符串处理 6.1 String类 6.2 StringBuffer类 6.3 StringTokenizer类的应用 6.4 字符串与其他数据类型的转换

  39. 6.3 StringTokenizer类 6.3.1 构造方法 6.3.2 StringTokenizer类的常用方法

  40. 6.3.1 构造方法 StringTokenizer类提供三种形式的构造函数: StringTokenizer(String str) StringTokenizer(String sb,String delim) // delim为分隔符号 StringTokenizer(String Sb,String delim,boolean returnTokens) 在对一个字符串进行解析的时候,在字符串中必须包括一个用于解析的分隔符号。Java置默认的分隔符为空格、制表符('\t')、换行符('\n')、回车符('\r')。如果在程序计中想采用自定义的分隔符,可以通过在构造函数中指定delim项来设置用户分隔符。相应地,在StringTokenizer类中提供了相应的成员方法: 另外,如果 returnTokens 标志为 true, 则分隔符字符也被作为标记返回。每个分隔符作为长度为一的字符串返回。如果标志为 false, 则跳过分隔符字符,且把它作为标记之间的分隔符。 例如: StringTokenizer fenxi=new StringTokenizer("we are student"); StringTokenizer fenxi=new StringTokenizer("we ,are ; student", ", ; ");

  41. 6.3.2 StringTokenizer类的常用方法 1.统计分隔符数量 public int countTokens() 该方法返回的是字符串中的当前单词的数量,为整数。例如: String str=new String("I love Java"); StringTokenizer st=new StringTokenizer(str); int nTokens=st.countTokens(); // 值为3 2.匹配和寻找分隔符 通常,下面的两个组合方法均可以用来完成分隔符的寻找和匹配: hasMoreElements()、nextElement() 和 hasMoreTokens()、nextToken()、nextToken(String delim) 一般是用hasMoreTokens方法判断在字符串中是否还有已经定义的分隔符。如果有,除分隔符后、到下一个分隔符之前的内容进行一次循环。如果没有则终止循环。下面的两个程序应用hasMoreTokens()、nextToken()方法来寻找String对象中的分隔符。

  42. 6.3.2 StringTokenizer类的常用方法 【例6-5】利用StringTokenizer类进行简单词法分析 //TestToken.java import java.util.*; public class TestToken { public static void main(String args[]) { //构造StringTokenizer对象 StringTokenizer st = new StringTokenizer ("this is a Java programming"); //在字符串中匹配默认的分隔符 while(st.hasMoreTokens()) { //打印当前分隔符和下一分隔符之间的内容 System.out.println(st.nextToken()); } } } 程序运行结果如下 this is a Java Programming

  43. 第六章 字符串处理 6.1 String类 6.2 StringBuffer类 6.3 StringTokenizer类的应用 6.4 字符串与其他数据类型的转换

  44. 6.4 字符串与其他数据类型的转换 6.4.1 其他数据转换为字符串 6.4.2 字符串转化成其他数据

  45. 6.4.1 其他数据转换为字符串 String类中提供了静态方法valueOf(),用来把不同类型的简单数据转化为字符串。申明格式如下: public static String valueOf(boolean b) public static String valueOf(char c) public static String valueOf(char[] data) public static String valueOf(char[ ]data,int offset,int count) public static String valueOf(double d) public static String valueOf(float f) public static String valueOf(long l) public static String valueOf(Object obj)

  46. 6.4.1 其他数据转换为字符串 【例6-7】将简单数据转换成字符串 public class CovertString { public static void main(String args[]) { int nInt = 10; float fFloat = 3.14f; double dDouble = 3.1415926; //转换为整型 Integer obj1 = new Integer(nInt); //转换为浮点数类型 Float obj2= new Float(fFloat); //转换为双精度类型 Double obj3 = new Double(dDouble); //分别调用toString方法转换为字符串 String strString1 = obj1.toString(); System.out.println(strString1); String strString2 = obj2.toString(); System.out.println(strString2); String strString3 = obj3.toString(); System.out.println(strString3); } }

  47. 6.4.2 字符串转化成其他数据 同时,类Integer、Double、Float和Long中也提供了方法valueOf( )把一个字符串转化为对应的数字对象类型。其申明格式如下: public static Double valueOf(String s) throws NumberFormatException public static Integer valueOf(String s) throws NumberFormatException public static Float valueOf(String s) throws NumberFormatException public static Long valueOf(String s) throws NumberFormatException public static Double valueOf(String s) throws NumberFormatException 特别注意的是,若该 String 不能作为相应数据类型对象的转换,则抛出异常。 用户可以调用Integer、Double、Long、Float类中的ValueOf方法将字符串转换为相应的封装数据类型,进而转换为简单数据类型。

  48. 6.4.2 字符串转化成其他数据 Double、Float、Integer、Long等类都提供了doubleValue(), floatValue(), intValue(), longValue()等方法将对象转换成其他简单数据类型的方法。 例如: String strPI=”3.1415926”; Double dpi=Double.valueOf(strPI); double ddPI=dpi.doubleValue( ); float ffPI=dpi.floatValue(); 同时Boolean、Byte、Double、Float、Integer、Long等类也分别提供了静态方法parseDouble(String)、 parseFloat(String)、parseInt(String)、 parseLong(String) 等方法将对象转换成其他简单数据类型的方法。其方法声明格式如下: staticboolean parseBoolean(Strings) staticint parseInt(Strings[, intradix]) staticbyte parseByte(Strings) staticdouble parseDouble(Strings)          …… staticfloat parseFloat(Strings)

  49. 6.4.2 字符串转化成其他数据 【例6-8】 将字符串转换为相应的简单数据类型。 public class CovertSimple{ public static void main(String args[]){ char[] cArray; int nInt; float fFloat; double dDouble; String strString = new String("I love Java"); String strInteger = new String("314"); String strFloat = new String("3.14"); String strDouble = new String("3.1416"); cArray = strString.toCharArray(); System.out.println(cArray); nInt = Integer.parseInt(strInteger); System.out.println(nInt); fFloat = Float.parseFloat(strFloat); System.out.println(fFloat); dDouble = Double.parseDouble(strDouble); System.out.println(dDouble); } } 上面程序的输出为: I love Java 314 3.14 3.1416

More Related