实验手册09字符界面应用程序_第1页
实验手册09字符界面应用程序_第2页
实验手册09字符界面应用程序_第3页
实验手册09字符界面应用程序_第4页
实验手册09字符界面应用程序_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

实验1:通过命令行给Java应用传递参Java源文件:publicpublicpublicstaticvoidmain(String[]args){if(args.length!=2){System.out.println("Type12");}Stringparam1=args[0];Stringparam2=System.out.println(“你 +param1“+param2);}}2下命令运行这个程序:java HTC你的品牌是:HTC,型号是实验2:存取系统属importjava.util.Properties;importimportjava.util.Properties;importjava.util.Enumeration;publicclassAllProperties{publicstaticvoidmain(String[]args)Propertiesprops=System.getProperties();EnumerationPropertiesprops=System.getProperties();Enumerationprop_names=pertyNames();while(prop_names.hasMoreElements())=Stringprop_valueprops.getProperty(prop_name);System.out.println("属性:"+prop_name对应的值:prop_value}}}java–D新加属性=属性值实验3:Math类的用MathpublicpublicclassTestMathpublicstaticvoidmain(String[]args)//得到一个随机doubled=Math.random();//计算半径为10的圆的周doublep=2*Math.PI*10;}}这个程序调用Math中的一个静态方法random()来生成一个随机数,它将返回一个0~1实验4:String的不可更改Stringpublicpublicclass{publicstaticvoidmain(String[]{Stringa="abcde";System.out.println("a="+a+"//1");Stringb=a.toUpperCase();System.out.println("a="+a+"//2");System.out.println("b="+b+"}}a= a= b= Stringb。实验5:字符串的创建和比掌握字符串的比较方式,区分“==equalspublicpublicclasspublicstaticvoidmain(String[]args){Strings1=newString("Test");//1Strings2=newString("Test");//2Strings3="Test";//3Strings4="Test";System.out.println("s1==s2?Answer:"+(s1== Answer:"+s1.equals(s2));Answer:"+s1.equals(s2));System.out.println("s3==s4?Answer:"+(s3==Answer:"+s3.equals(s4));//8}}在这个例子中,通过new操作符来创建了两个String对象s1和s2,通过直接指定字符串值的方法创建了s3和s4两个String对象,然后,我们来看一下它们是否相等。在这里我一个对象,而“equals()”方法比较的是对象内容是否相等。s1==s2?Answer:falses1equalss2?Answer:trues3==s4?Answer:trues3equalss4?//4s4这个变量指向已经存在的对象,==s4true了。newString对象,无论内存中是否已经存在相同内容的对象,实验6:字符串的连掌握字符串连接的两种方式:StringBufferappend()Stringpublicpublicclasspublicstaticvoidmain(String[]args){Strings1=" Strings2="World";s1+=s2;StringBuffersb1=newStringBuffersb2=newStringBuffer("World");}}这两种方式都可以实现字符串的连接从效率上来说String+操作劣于StringBuffer的append()方法这是因为在进+”操作时实际上还是需要将String转换成StringBufferappend()StringBuffertoString()String。除了StringBuffer外,还有一个和字符串相关的类StringBuilder,它和StringBuffer的方实验7:ArrayList的用ListimportimportpublicclassListExamplepublicstaticvoidmain(String[]args){Listlist=newArrayList();list.add(newInteger(4));list.add(newFloat(5.0F));list.add(newInteger(4));}}Listlist中加入。[one,second,3rd,4,5.0,second,ArrayListlist实验8:HashSet的用importimportpublicclassSetExamplepublicpublicstaticvoidmain(String[]args){Setset=newHashSet();set.add(newInteger(4));set.add(newFloat(5.0F));//set.add(newInteger(4));//1}}Set是一个无序无重复的集合,所以,如果试图向其中加入已经存在的对象,将不会成功,如在上面的//1falseSet中。[one,4,5.0,3rd,实验 tor的用源文件:publicpublic//PINString{ String//其他属性//构造 (Stringpin,Stringbrand){this.pin=pin;this.brand=}publicStringgetPin(){returnpin;}publicpublicvoidsetPin(Stringpin){this.pin=pin;}publicStringreturn 品牌:"+brand+"pin}}源文件 importimportpublicclasspublicstaticvoidmain(String[]c1= ("3215-7-c2=new ("8754-c4= ("6534-9-s=newItortortor.hasNext())while}}}这里定义了一个类用于测试。创建了4个对象放入到ArrayList象s中。然后,利用ArrayList的itor()方法,可以得到一个Itor对象,通过hasNext()ItorItornext()Itor品牌 pin号:3215-7-品牌 pin号:8762-4-品牌 pin号:8754-8- pin号:6534-9- 中覆盖了toString()方法,所以,打印 出toString()方法中返回的字符串。实验10:TreeSet用TreeSetimportimportpublicclasspublicstaticvoidmain(String[]args){TreeSetts=newTreeSet();Itortor= }}TreeSet5String对象,Sony实验11:自定义对象的排源文件:publicpublic//PINStringimplements(Stringthis.pin=}publicStringgetPin(){returnpin;}publicvoidsetPin(Stringpin){this.pin=pin;}publicbooleanequals(Object//首先需要判断oif(obj==null){return}//判断测试的是否为同一个对象if(this==obj){return}//判断它们的类型是否相等//falseif(this.getClass()obj.getClass()){return}//将参数中传入的对象造型 类c=//只需比较两个对象的id属性是否一样//就可以得出这两个对象是否相returnreturn}publicint}pin//compareTopublicintcompareTo(Objectother)c= ) }publicStringtoString(){return" }}我们让这个自定义的ComparableObject对象造型为pin和参数中String类型的pin属性来比较的。然后我们就可以将这个对象加入到TreeSet中了importimportpublicclassSortedTreeSetpublicstaticvoidmain(String[]args){TreeSetts=newTreeSet();c1= ("uvw-xyz-c2= ("abc-uvw-c3=new Itortor=while }}可以看到,输出的结果是有序的。而实际上,它的排序是通过中覆盖ComparablecompareTo()实验12:Collections类的用Collectionssort/shuffle()/reverse()/copy()importimport//Collectionssort()publicclassCollectionsSortpublicstaticvoidmain(String[]args){Listlist=Arrays.asList(args);}}importjava.util.ArrayList;importimportjava.util.ArrayList;import//Collections混排方法publicclassCollectionsShufflepublicstaticvoidmain(Stringargs[]){ArrayListlist=newArrayList();doublearray[]={1,2,3,4,5};for(inti=0;i<array.length;i++){list.add(newDouble(array[i]));}for(inti=0;i<array.length;i++){}}}importjava.util.ArrayList;importimportjava.util.ArrayList;importjava.util.Collections;//Collections的反转方法publicclassCollectionsReversepublicstaticvoidmain(Stringargs[]){ArrayListlist=newArrayList();Integerarray[]={1,2,3,4,5};for(inti=0;i<array.length;i++){list.add(new}for(inti=0;i<array.length;i++){}}}importjava.util.ArrayList;importimportjava.util.ArrayList;importjava.util.Collections;//Collections的copy()方publicclassCollectionsCopypublicstaticvoidmain(Stringargs[])doublearray[]={21.4,89.1,23.8,980.6,42.31ArrayListdestList=newArrayList();ArrayListsrcList=newArrayList();for(inti=0;i<array.length;i++){destList.add(new}Stringstr[]={"dabcd","asdfa"};for(intj=0;j<str.length;j++){}Collections.copy(destList,for(inti=0;i<destList.size();i++){System.out.println("destList["+i+"]="+}}}实验13:Map的用importjava.util.HashMap;importjava.util.Map;importjava.util.Set;importjava.util.I importjava.util.HashMap;importjava.util.Map;importjava.util.Set;importjava.util.I importjava.util.Map.Entry;publicclassMapTestpublicstaticvoidmain(Stringargs[])//创建一个HashMaphashmap=new ",newDouble(9634.34)); ",newDouble(8723.22)); ",newDouble(4378.00)); newDouble(5899.22));hashmap.put("钱八new//GetasetoftheentriesSetset=hashmap.entrySet();Itortor=Entry//显示HashMap中所有的键和值 entry=(Entry)i System.out.println("}//修改HashMap中doublesalary=(Double)hashmap.get(" ",salary+1000);//get()JohnDoe 的新工资"+ }}HashMaphashmapput()5Map.Entryhashmap因为Map中的key是不重复的,所以用hashmap.put("",salary+1000)就是将“李实验14:使用泛importjava.util.HashMap;importjava.util.Map;importjava.util.Set;//使用泛publicclassGenMapTestpublicstaticvoidmain(Stringargs[])//创建一个 HashMap<String,Double>(); ",newDouble(9634.34)); ",newDouble(8723.22)); ",newDouble(4378.00)); ",newDouble(5899.22));hashmap.put("钱八",newDouble(2999.08));//Getasetofthe for(Map.Entry<String,Double>me:set){System.out.print(me.getKey()+":");//System.out.println(me.getValue());}//修改HashMap中doublesalary=(Double)hashmap.get(" ",salary+1000);//用get()方法取得 对应的}//修改HashMap中doublesalary=(Double)hashmap.get(" ",salary+1000);//用get()方法取得 对应的 的新工资"+ }}实验15:自定义泛publicpublicclassMyGenerics<T>{privateTfield;publicvoidsetField(Tf){this.field=f;//获得f的类}publicTgetField(){return}}类中定义了一个T类型的属性field,并且定义了相应的setter/getter方法,在setField()方法中,我们使用getClass()方法将f的类型取出来,它将返回一个Class类型的对象,表示f所publicpublicclasspublicstaticvoidmain(String[]args){MyGenerics<String>g1=newMyGenerics<String>(); MyGenerics<Integer>MyGenerics<Integer>g2=newMyGenerics<Integer>();g2.setField(newInteger(200));}}在这个程序中,我们首先定义了一个MyGenerics<String>类型的变量g1,然后调用setField(方法,并且传递给它一个String类型的参数,因此此处相当于调用了一个setField(Strings)MyGenerics<Integer>g2,并且setField()方法。编译并运行这个程序,可以得到如下的输出:classjava.lang.StringclassObject另外,在上面的程序TestGenerics.java中,虽然g1和g2类型好像来自同一个类(MyGenerics<T>),但是,实际上它们的类型是不同的,也就是说,不能使用“g1g2;”实验16:自定义受限制的泛importimportclassMyGenerics<TextendsList>{privateTfield;publicvoidsetField(Tf){this.field=f;//获得f的类}publicTgetField(){return}}在这个类中,我们限制了T这个类型参数必须是List或者它的子类型。注意,虽然Listimportimportpublicclasspublicstaticvoidmain(String[]////=//String不是ListMyGenerics<String>mg1=new}}2MyGenerics的对象,第一个对象,其泛型类型限制在ArrayList中,因为ArrayList是List的子类,所以这里不会有问题,但下面一条语句MyGenerics<String>StringList的子类,不符合MyGenerics的定义,所以这里会TestMyGenerics.java:5:类型参数java.lang.StringMyGenerics<String>mg1=new^method(MyGenerics<?extendsList>)methodMyGenericsList实验17:文件操掌握使用File类来进行文件 操作的办importimportimportpublicclasspublicstaticvoidmain(String[]args)//当 对应的File对Filef=new//f指定}catch(IOExceptione){}//获File[]files=for(intfor(inti=0;i<files.length;i++){System.out.println(" }}}}运行这个FileOper应用,将会生成一个myTmpXXXX.tmp的临时文件,然后,通过FilelistFiles()File对象,并且将这些对象按照文件或者打印出来:在文件 实验18:使用文件过滤器接口来过滤文FilenameFilterimportimportjava.io.FilenameFilter;importjava.io.File;*功能:按照扩展名过滤文件publicclassJavaFilterimplementsFilenameFilter*javapublicbooleanaccept(Filedir,Stringname){returnname.endsWith(".java");} JavaFilterFileNameFilteraccept()方法,它将根据文件扩展名是否为.java来过滤文件。JavaFilterimportimportpublicclasspublicstaticvoidmain(Stringargs[]){if(args.length!=1){}StringFilecurrDir=newString[]javaFiles=currDir.list(newJavaFilter());for(inti=0;i<javaFiles.length;i++){}}}JavaFilterFilelist()方法的参数,因此,它能够将指java文件列出来。实验19:使用正则表达式验 地importimportpublicclass{publicstaticvoidmain(String[]args) =Matchermatcher=ptn.matcher(args[0]);if(matcher.matches()){System.out.println("}elseSystem.out.println("}}}matcher()MatcherMatchermatches()方我们编译并运行这个程序,输入如下令运行java 然后再输入如下令运行java 实验20:使用正则表达式搜索字符串内importimportjava.util.regex.*;importjava.io.*;publicclassHyperLinkFinderpublicstaticvoidmain(Stringargs[])StringpatternString="<a\\s+href\\s*=\\s*"//+//url,如 +target部StringBuffersb=newStringBuffer("");try{FileReaderfr=newBufferedReaderbr=newintintwhile((ch=br.read())!=-1){sb.append((char)ch);}PatternptnMatchermatcher=while(matcher.find())intstart=matcher.start();intend=matcher.end();StringhUrl=sb.substring(start,end);}}catch(PatternSyntaxExceptione1){}catch(IOExceptione2){}}}编译并且执行这个程序,注意,你需要根据你的HTMLFileReader实验21:Deprecation例DeprecationJavaDeprecationimportimportjava.util.Date;publicclassTestDep{publicstaticvoidmain(String[]args)//使用了一个deprecated的构造Dated=new//调用了一个deprecated的方intd

温馨提示

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

评论

0/150

提交评论