JAVA高级练习题.docx
- 文档编号:3884027
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:28
- 大小:42.72KB
JAVA高级练习题.docx
《JAVA高级练习题.docx》由会员分享,可在线阅读,更多相关《JAVA高级练习题.docx(28页珍藏版)》请在冰豆网上搜索。
JAVA高级练习题
1、编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。
2、编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。
packagezuoye;
/**
*输出e的出现次数
*/
importjava.util.Scanner;
publicclassTest2{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
Stringstr=input.next();
intcount=0;
for(inti=0;i { if(str.charAt(i)=='e') { count++; } } System.out.println("e的出现次数是: "+count); } } 3、生成十个0~100之间的随机数,放到数组中,然后排序输出。 packagezuoye; importjava.util.Arrays; /** *生成十个0~100之间的随机数,放到数组中,然后排序输出 *@authorAdministrator * */ publicclassTest3{ publicstaticvoidmain(String[]args){ intarr[]=newint[10];//定义一个长度为10的int数组 for(inti=0;i arr[i]=(int)(Math.random()*100);//取0~1的随机数*100,即为0~100的随机数 } Arrays.sort(arr);//排序方法 for(inta: arr)//增强for循环 { System.out.print(a+""); } } } 4、巴黎时间比北京时间晚7个小时,纽约时间比北京时间晚12个小时,试编写一程序,根据输入的北京时间输出相应的巴黎和纽约时间。 packagezuoye; importjava.util.Calendar; importjava.util.Date; publicclassTest4{ publicvoidgetTime(inty,intm,intd,inth,intmi,ints){ //获取Calendar实例 Calendartime=Calendar.getInstance(); //设置巴黎时间 time.set(y,m,d,h-7,mi,s); //输出巴黎时间 System.out.println("巴黎时间是"+time.get(Calendar.YEAR)+"年"+ ((time.get(Calendar.MONTH)))+"月"+ time.get(Calendar.DAY_OF_MONTH)+"日"+ time.get(Calendar.HOUR_OF_DAY)+"时"+ time.get(Calendar.MINUTE)+"分"+ time.get(Calendar.SECOND)+"秒"); //设置纽约时间 time.set(y,m,d,h-12,mi); //输出纽约时间 System.out.println("纽约时间是"+time.get(Calendar.YEAR)+"年"+ ((time.get(Calendar.MONTH)))+"月"+ time.get(Calendar.DAY_OF_MONTH)+"日"+ time.get(Calendar.HOUR_OF_DAY)+"时"+ time.get(Calendar.MINUTE)+"分"+ time.get(Calendar.SECOND)+"秒"); } publicstaticvoidmain(String[]args){ Test4time=newTest4(); //设置北京时间 time.getTime(2018,3,15,16,53,9); } } 5、解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名 如果邮箱地址不合法则显示不合法的原因 提示: 邮箱地址不合法的因素: 1)邮箱地址中不包含@或。 2)邮箱地址中含有多了@或。 3)邮箱地址中。 出现在@的前面 4)用户名里有其他字符 实现步骤: (1)创建一个类,类名: mailtest 类图如下: (类名和方法名必须与要求一样。 区分大小写) packageyouxiang; importjava.util.Scanner; publicclassMailTest{ publicstaticbooleantestMail(){ Scannerinput=newScanner(System.in); Strings=input.next(); if(s.indexOf("@")==-1||s.indexOf(".")==-1) { System.out.println("邮箱地址中不包含@或."); returnfalse; } if(s.indexOf("@")! =s.lastIndexOf("@")||s.indexOf(".")! =s.lastIndexOf(".")) { System.out.println("邮箱地址中含有多余的@或."); returnfalse; } if(s.indexOf("@")>s.lastIndexOf(".")) { System.out.println("邮箱地址中.出现在@的前面"); returnfalse; } for(inti=0;i { if((s.charAt(i)>='a'&&s.charAt(i)<='z')||(s.charAt(i)>='A'&&s.charAt(i)<='Z')) { }else { System.out.println("用户名里有其他字符"); returnfalse; } } returntrue; } } packageyouxiang; publicclassTest{ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub if(MailTest.testMail()){ System.out.println("邮箱格式合法"); }else{ System.out.println("邮箱格式不合法"); } } } 6、分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数。 packagezuoye; importjava.util.Scanner; /** *控制台输入一段字符串,再查询一段子字符串出现的次数 * */ publicclassTest6{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); Stringa=input.next(); Stringb=input.next(); intcount=0;//计数器 for(inti=0;i { if(a.indexOf(b,i)! =-1) { count++; } } System.out.println(count); } } 集合类 1、请使用LinkedList来模拟一个队列(先进先出的特性): 1)拥有放入对象的方法voidput(Objecto) 2)取出对象的方法Objectget() 3)判断队列当中是否为空的方法booleanisEmpty();并且,编写测试代码,验证你的队列是否正确。 publicclassLinkeds{ Listl; Linkeds(){ l=newLinkedList(); } publicvoidput(Objecto){ l.add(o); } publicObjectget(){ Objecto=l.get(0); l.remove(0); returno; } publicbooleanisEmpty(){ if(l.isEmpty()){ returntrue; } returnfalse; } publicstaticvoidmain(String[]args){ //定义一个空队列 Linkedsl=newLinkeds(); //往队列中放入对象 l.put("Tom1"); l.put("John2"); l.put("Mary3"); //如果队列不为空,依次输出队列中的元素 while(! l.isEmpty()){ System.out.println(l.get()); } } } 2、假设顺序列表ArrayList中存储的元素是整型数字1~5,遍历每个元素,将每个元素顺序输出。 packagezuoye; importjava.util.ArrayList; importjava.util.Iterator; importjava.util.List; publicclassTest1{ publicstaticvoidmain(String[]args){ List Numbern1=newNumber (1); Numbern2=newNumber (2); Numbern3=newNumber(3); Numbern4=newNumber(4); Numbern5=newNumber(5); list.add(n1); list.add(n2); list.add(n3); list.add(n4); list.add(n5); Iteratorit=list.iterator(); while(it.hasNext()) { System.out.print(it.next()); } } } 3、在一个列表中存储以下元素: apple,grape,banana,pear 1)返回集合中的最大的和最小的元素 2)将集合进行排序,并将排序后的结果打印在控制台上 packagezuoye; publicclassFruit{ privateStringfruit; publicFruit() { } publicFruit(Stringfruit) { this.fruit=fruit; } publicStringgetFruit(){ returnfruit; } publicvoidsetFruit(Stringfruit){ this.fruit=fruit; } } packagezuoye; importjava.util.Arrays; importjava.util.Collections; importjava.util.List; publicclassFruitTest{ publicstaticvoidmain(String[]args){ Listfruit=Arrays.asList("applegradebananapear".split("")); System.out.println("最大值是: "+Collections.max(fruit)); System.out.println("最小值是: "+Collections.min(fruit)); } } 4、编写一个程序,创建一个 HashMap对象,用于存储银行储户的信息(其中储户的主要信息有储户的ID,姓名和余额)。 另外,计算并显示其中某个储户的当前余额。 packagezuoye; publicclassBank{ privateStringid; privateStringname; privatedoublemoney; publicBank() { } publicBank(Stringid,Stringname,doublemoney) { this.id=id; this.name=name; this.money=money; } publicStringgetId(){ returnid; } publicvoidsetId(Stringid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicdoublegetMoney(){ returnmoney; } publicvoidsetMoney(doublemoney){ this.money=money; } } packagezuoye; importjava.util.HashMap; importjava.util.Iterator; importjava.util.Map; importjava.util.Set; publicclassBankTest{ publicstaticvoidmain(String[]args){ Map map.put("用户1",newBank("1","张三",Math.random()*100000)); map.put("用户2",newBank("2","李四",Math.random()*100000)); map.put("用户3",newBank("3","王五",Math.random()*100000)); map.put("用户4",newBank("4","赵六",Math.random()*100000)); SetkeySet=map.keySet(); Iteratorit=keySet.iterator(); doublesum=0; while(it.hasNext()){ Objectkey=it.next(); Banka=map.get(key); System.out.println("账户"+a.getId()+"的余额: "+a.getMoney()); //计算所有帐户的余额之和 sum+=a.getMoney(); } System.out.println("所有账户余额: "+sum); } } 5、从控制台输入若干个单词(输入回车结束)放入集合中,将这些单词排序后(忽略大小写)打印出来。 packagezuoye; importjava.util.ArrayList; importjava.util.List; importjava.util.Scanner; publicclassTest5{ publicstaticvoidmain(String[]args){ Scannerinput=newScanner(System.in); List Stringstr=input.nextLine(); String[]arr=str.split(""); Stringtmp; for(inti=0;i for(intj=i+1;j if(arr[i].compareToIgnoreCase(arr[j])>0){ str=arr[j]; arr[j]=arr[j+1]; arr[j+1]=str; } } } for(Stringa: arr){ list.add(a); System.out.println(a); } } } IO流 1、在本机的磁盘系统中,找一个文件夹,利用File类的提供方法,列出该文件夹中的所有文件的文件名和文件的路径,执行效果如下: - 路径名: c: \temp\def.txt package作业; importjava.io.File; publicclassTest1{ publicstaticvoidmain(String[]args){ Filefile=newFile("E: \\新建文件夹"); String[]files=file.list(); for(Stringo: files){ System.out.println("文件名: "+o); System.out.println("路径: "+file.getAbsolutePath()+"\\"+o); System.out.println("--------------------------------------"); } } } 2、编写一个java程序实现文件复制功能,要求将d: /io/copysrc.doc中的内容复制到d: /io/copydes.doc中。 package作业; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileOutputStream; /** *文件的拷贝 */ publicclassTest2{ publicstaticvoidmain(String[]args){ Filefile=newFile("file\\abc.txt"); Filefile_back=newFile("file\\abc_back.txt"); try(FileInputStreamfi=newFileInputStream(file);FileOutputStreamfo=newFileOutputStream(file_back);){ intb=-1; while((b=fi.read())! =-1){ fo.write(b); } }catch(Exceptione){ e.printStackTrace(); } System.out.println("拷貝成功! "); } } 3、创建c: /test.txt文件并在其中输入"helloworld" 创建一个输入流读取该文件中的文本 并且把小写的l变成大写L再利用输出流写入到d: \test.txt中 实现步骤: 1.在本地硬盘C盘下创建一个文件test.txt 2.创建一个包含main()方法的类,并在main中编写代码 3.运行代码并且测试结果 实现过滤器的功能 效果显示: package作业; importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.FileNotFoundException; importjava.io.FileReader; importjava.io.FileWriter; importjava.io.IOException; /** *替换文件中的小写字母l为大写字母L */ publicclassTest3{ publicstaticvoidmain(String[]args){ FileReaderf; Strings=""; BufferedReaderbr=null; try{ f=newFileReader("F: \\test.txt"); br=newBufferedReader(f); s=br.readLine(); System.out.println("源文件"+s); s=s.replace("l","L"); }catch(FileNotFoundExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }finally{ try{ br.close(); }catch(IOExceptione){ e.printStackTrace(); } } BufferedWriterbw=null; System.out.println(s); try{ FileWrite
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 高级 练习题