第4章 字符串.ppt

上传人:文库蛋蛋多 文档编号:2629652 上传时间:2023-02-20 格式:PPT 页数:42 大小:416KB
返回 下载 相关 举报
第4章 字符串.ppt_第1页
第1页 / 共42页
第4章 字符串.ppt_第2页
第2页 / 共42页
第4章 字符串.ppt_第3页
第3页 / 共42页
第4章 字符串.ppt_第4页
第4页 / 共42页
第4章 字符串.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《第4章 字符串.ppt》由会员分享,可在线阅读,更多相关《第4章 字符串.ppt(42页珍藏版)》请在三一办公上搜索。

1、第4章 字符串,4.1 String 类的特点4.2 String Buffer类的特点4.3 字符串的特殊处理方法,4.1 String 类的特点,String类是字符串常量类,该类对象在建立后不能修改。Java编译器保证每个字符串常量都是String类对象。用双引号括住的一串字符即为字符串常量,比如“Welcome to Java!,在通过编译器编译后成为String对象。因而,实例化一个String类对象既可以通过字符串常量,也可以通过系统提供的构造方法。,4.1.1 String类的基本方法 前面谈到过String类的一些基本属性,本节我们讨论String类的一些常用方法。1Strin

2、g类初始化 String类可用字符串常量对其初始化,也可调用其构造方法来进行。例如:String s=Welcome to Java Wrold!;String类主要构造方法见表4.1。,表4.1 String类的构造方法,例如:char char1=a,b,c,d;String s1=new String();String s2=new String(char1);String s3=new String(char1,1,2);/生成字符串“bc”String s4=new String(char1,0,1,3);/生成字符串“bcd”,2字符串类的String访问 字符串的访问即字符串的引

3、用,它包括得到字符串的长度,得到指定位置的字符或子串,以及得到某个字符或子串在字符串中的索引位置等。String类的功能很强,几乎覆盖了所有的字符串运算操作。表4.2给出了一些常用的字符串运算方法。,表4.2 String类的常用方法列表,例如:String s=abCD;int i=s.length();/i=4String s1=s.toLowerCase();/s1=abcdString s2=s.toUpperCase();/s2=ABCDchar c=s.charAt(3);/c=DString s3=s.substirng(2);/s3=CDString s4=s.substirn

4、g(2,3);/s4=C,boolean b=s.regionMatches(1,bCE,0,2);/b=falseboolean b1=s.startWith(ab);/b1=trueboolean b2=s.endWith(de);/b2=falseint m=s.indexOf(C);/m=2int k=s.lastIndexOf(C);/k=2String s5=s.replace(b,B);/s5=aBCDdouble d=5.234;String s6=String.valueOf(d);/s6=5.234,4.1.2 String类的使用实例 在上一节中我们给出了String类的

5、一些方法,可以看出,String类几乎覆盖了字符串的所有操作,给实际的编程带来了极大的方便。下面我们给出一个String类的使用实例。例4.1 import java.awt.*;public class Messages,/*Allows messages to be sent to the class SquareFigure via a dialog box.*/public static void main(String args)SquareFigure.create();while(true)try,String message1=DialogBox.request(Supply

6、message to be sent:,SquareFigure.);String message=message1.trim();int startArg=message.indexOf();int endArg=message.indexOf();int commaPosn;String argRaw;String arg;String arg1Raw;String arg1;String arg2Raw;,String arg2;String name1=message.substring(0,startArg);/取出类中的方法String name=name1.trim();if(e

7、ndArg-startArg 1)argRaw=message.substring(startArg+1,endArg);/得到方法的调用参数arg=argRaw.trim();else arg=;if(endArg!=message.length()-1),DialogBox.warn(Message not understood:try again!);elseif(name.equals(SquareFigure.moveRight)SquareFigure.moveRight(Integer.parseInt(arg);else if(name.equals(SquareFigure.

8、moveLeft)SquareFigure.moveLeft(Integer.parseInt(arg);elseif(name.equals(SquareFigure.moveUp)SquareFigure.moveUp(Integer.parseInt(arg);elseif(name.equals(SquareFigure.moveDown),SquareFigure.moveDown(Integer.parseInt(arg);elseif(name.equals(SquareFigure.setColour)if(arg.equals(Color.red)SquareFigure.s

9、etColour(Color.red);else if(arg.equals(Color.blue)SquareFigure.setColour(Color.blue);else if(arg.equals(Color.green)SquareFigure.setColour(Color.green);else DialogBox.warn(Invalid colour:try again);,else DialogBox.warn(Message not understood:try again!);catch(Exception e)DialogBox.warn(Message not u

10、nderstood:try again!);,在该例中,SquareFigure、DialogBox同样是我们提供的标准类,读者可从附录中查阅。本程序首先生成一个红色的正方形(如图4.1所示),该正方形显示在窗口的正中间,同时会出现一个如图4.2所示的提示框。在该提示框中输入类SquareFigure中的方法,就可以达到移动、改变颜色的目的。如在提示框中分别输入moveUp(30)、setColour(Color.blue)后结果如图4.3、4.4所示。在程序中,我们用到了String类的一些方法,读者可自行分析。,图 4.1,图 4.2,图 4.3,图 4.4,4.2 String Buff

11、er类的特点,String类是字符串常量类,初始化后就不能进行修改,而String Buffer类是字符串缓冲区,不仅可以接受修改,还可以读入整个文件。在Java中,String Buffer类是一个可以修改的字符串对象,使用起来比String类更加灵活、方便。Java中并不支持运算符的重载,但“+”是个例外,例如,对语句:String s=Welcome+to+Java!;,编译器首先生成类StringBuffer的一个实例,然后连续调用方法append(),最后,再调用方法toString()把StringBuffer对象转换为String对象。这相当于执行语句:String s=new

12、String Buffer(Welcome).append(to).append(Java!).toString();,4.2.1 String Buffer类的基本方法 与String类类似,String Buffer类方法很多,下面我们也从初始化与访问方法两个方面加以介绍。1String Buffer类的初始化 String Buffer类只能用初始化函数对其初始化,如果想按下面语句:String Buffer s=Welcome to Java!;对其初始化,则系统会给出出错信息。String Buffer的构造函数如表4.3所示。,表4.3 String Buffer类的构造函数,2S

13、tring Buffer类的访问方法 String Buffer类的方法主要就是添加字符和插入字符,如表4.4所示。,表4.4 String Buffer类的主要方法,例如:string Buffer sb=new String Buffer(this is a test String Buffer);sb.setLength(14);/sb=this a testsb.set Char(0,T);/sb=This is a testsb.append(5.12);/append a double numbersb.append(true);/append a Boolean number,t

14、hen sb=This is a test5.12truesb.insert(14,value=);/sb=This is a test value=5.12true,4.2.2 String Buffer类的使用实例下面给出一个字符串的反转操作实例。例4.2public class Reverse String public Reverse String()public static void main(String args)String message1=Dialog Box.request,(Supply a String to be reversed:);ReverseString

15、r=new ReverseString();Transcript.print(r.reverse(message1);public String reverse(String s)int len=s.length();StringBuffer sb=new StringBuffer();,for(int i=(len-1);i=0;i-)sb.append(s.charAt(i);return sb.toString();,当运行程序的时候,会出现一个对话框,要求输入一个字符串。如输入:“Welcome to Java World!(如图4.5所示),则反转的结果如图4.6所示。,图 4.5,

16、图 4.6,4.3 字符串的特殊处理方法,我们知道,基于网络的应用常常会碰到诸如对一个字符串进行解析,将其分解为多个子串的问题。如Web页面表格设计中,浏览器可能以字符串的形式返回多个表格值。例如:String s=name=Boy,如果调用String、String Buffer类中方法,当然也可以实现字符串的解析,但较为繁琐。为此,Java类java.util提供了String Tokenizer对字符串进行解析,我们将给出两个实现同一目的的例子加以说明。例4.3 import java.util.*;public class String Parse public String Pars

17、e(),public static void main(String args)String s=name=Boy,在该程序中,对String Tokenizer对象进行初始化的同时,我们还对它进行了分隔符的设置(本例中,我们设置为字符“&”与“=”)。方法has More Tokens()用于判断解析是否完毕;next Token()得到下一个记号。本例的运行结果如图4.7所示。下面是一个用String、String Buffer的类方法实现字符串解析的例子。,图 4.7,例4.4public class StringParse1 public StringParse1()public st

18、atic void main(String args)String parsestr=new String3;String parsename=new String3;String parsevalue=new String3;,String s=name=Boyi+),j=parsestri.indexOf(=);parsenamei=parsestri.substring(0,j);j+;parsevaluei=parsestri.substring(j);for(i=0;icount;i+)Transcript.println(parsenamei+=+parsevaluei);,图 4.8,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号