版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、package com.itheima;/* * 第1题: 有一个字符串"woaiheimahahaheimaaiwo"求该字符串中"heima"出现的次数; * */public class Test1 public static void main(String args) / 定义一个字符串"woaiheimahahaheimaaiwo"String string = "woaiheimahahaheimaaiwo"/ 定义一个字符串"heima"String string2 = &quo
2、t;heima"/ 将目的字符串转成char类型数组char charArray = string.toCharArray();/ 将匹配的字符串转成char类型数组char charArray2 = string2.toCharArray();/ 标志位boolean b = false;/ 定义整型变量,存放次数int i = 0;/ 记录匹配的数组位置int x = 0;/ 遍历char类型数组for (int j = 0; j < charArray.length; j+) / 匹配上第一个字符if (charArrayj = charArray2x) / 获取值字符串
3、中匹配的位置int y = j;/ 遍历匹配的字符串for (char c : charArray2) / 如果匹配不成功,标志位:falseif (charArrayy != c) b = false;/ 跳出for循环break; else / 匹配当前字母位置成功b = true;y+;/ 匹配所有位置成功if (b) i+;/ 打印输出次数System.out.println(string + "中出现" + string2 + "的次数为:" + i);package com.itheima;import java.io.BufferedWri
4、ter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Collections;import java.util.Scanner;import java.util.TreeSet;/* * 第2题: 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息, * 输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。 * 要求
5、:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息。 */public class Test2 public static void main(String args) throws IOException / 标识录入学生次序int i = 0;/ 用treeSet集合接收并按照总成绩的顺序存放TreeSet<Student> set = new TreeSet<Student>(Collections.reverseOrder();while (true) i+;System.out.println("请输入第" +
6、 i + "个学生信息,格式为(name,30,30,30) :");String message = new Scanner(System.in).nextLine();/ 分割字符串,用字符转数组接收String split = message.split(",");/ 创建Student对象Student student = new Student(split0, Double.parseDouble(split1), Double.parseDouble(split2),Double.parseDouble(split3);/ 对象加入集合中se
7、t.add(student);System.out.println("是否继续?(0结束 其他数字继续:)");int a = new Scanner(System.in).nextInt();if (a = 0) System.out.println("录入与结束!");break;/ 实现文字录入到文件中File file = new File("stu.txt");BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file);bufferedWri
8、ter.write("学生姓名语文成绩数学成绩英语成绩总成绩");bufferedWriter.newLine();for (Student student : set) bufferedWriter.write(student.getName() + "" + student.getChinese() + "" + student.getMath()+ "" + student.getEnglish() + "" + student.getSum();bufferedWriter.newLin
9、e();bufferedWriter.flush();/ 关流bufferedWriter.close();/ 定义Student类class Student implements Comparable<Student> private String name;private double chinese;private double math;private double english;private double sum;/ 空参构造public Student() super();/ TODO Auto-generated constructor stub/ 满参构造pub
10、lic Student(String name, double chinese, double math, double english) super(); = name;this.chinese = chinese;this.math = math;this.english = english;this.sum = chinese + english + math;/ 继承接口重写compareTo方法Overridepublic int compareTo(Student o) / TODO Auto-generated method stubint i = new Do
11、uble(this.sum).compareTo(new Double(o.sum);if (i = 0) / 若成绩相同,按名字排序return pareTo();return i;/ Treeset集合要重写hashCode和equals方法Overridepublic int hashCode() return (int) (.hashCode() + this.sum);Overridepublic boolean equals(Object o) if (o instanceof Student) Student a = (Student) o;retu
12、rn .equals() && this.sum = a.sum;return false;/ 设置和获取方法public String getName() return name;public void setName(String name) = name;public double getChinese() return chinese;public void setChinese(double chinese) this.chinese = chinese;public double getMath() return m
13、ath;public void setMath(double math) this.math = math;public double getEnglish() return english;public void setEnglish(double english) this.english = english;/ sum只有获取方法public double getSum() return sum;package com.itheima;/* * 第3题: 请说明Java中字符''的含义,有什么作用? * 解析: * ''为转义字符 *指在其后面跟的字符是具
14、有特殊含义的,它们在字符串中组成了一个用于编译器识别的标记, *它用于描述一些无法用单个字符描述的特殊符号 *如换行符,退格符,制表符等等(他们在window中分别是n,b,t)。 *当编译器读到这个标记的时候,它就知道下一个字符是转义字符,而不是普通的字符 * 它会依据转义字符的含义做操作,而不是直接的使用原字符。 */public class Test3 /转义字符实现换行public static void main(String args) System.out.print("an");System.out.print("b");package
15、com.itheima;import java.util.Map.Entry;import java.util.Set;import java.util.TreeMap;/* *第4题: 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2). * */public class Test4 public static void main(String args) / 定义字符串:"abcdekka27qoq"String string = "abcdekka27qoq"/ 提
16、取字符char charArray = string.toCharArray();/ 将元素放入map集合 字母为键 ,个数为值TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();for (char c : charArray) map.put(c, 0);for (char c : charArray) if (map.containsKey(c) int num = map.get(c) + 1;map.remove(c);map.put(c, num);/ 迭代集合输出Set<
17、;Entry<Character, Integer>> entrySet = map.entrySet();for (Entry<Character, Integer> entry : entrySet) System.out.print(entry.getKey() + "(" + entry.getValue() + ")");package com.itheima;/* * 第5题: 有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个 * 方法a,请在
18、这个方法中调用b,然后抛出异常。在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕 * 捉异常的信息。完成这个例子,请说出java中针对异常的处理机制。 * * java中针对异常的处理机制: * 多异常处理 *捕获处理: *1多个异常分别处理 *2多个异常一次捕获多次处理 *3多个异常一次捕获一次处理 *声明抛出异常: *声明上使用,一次声明多个异常 *运行时异常被抛出可以不处理。即不捕获也不声明抛出。 *如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是他的子集 *父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不
19、能声明抛出 *当多异常处理时,捕获处理,前边的类不能是后边类的父类 * */public class Test5 public static void main(String args) / 创建TestC对象,并调用方法TestC cilent = new TestC();cilent.c();System.out.println("结束");class A public static void a() throws Exception/ 调用B的方法抛出异常B.b();class B public static void b() / 定义方法 抛出异常try throw
20、 new Exception(" throw by ClassB.methodB "); catch (Exception e) e.printStackTrace();class TestC / 捕获异常void c() try A.a(); catch (Exception e) e.printStackTrace();package com.itheima;/* * 第6题: 编写三各类Ticket、SealWindow、TicketSealCenter分别代表票信息、售票窗口、售票中心。 * 售票中心分配一定数量的票,由若干个售票窗口进行出售,利用你所学的线程知识来
21、模拟此售票过程。 * */public class Test6 public static void main(String args) / 创建售票中心对象赋值票数:200TicketSealCenter center = new TicketSealCenter(200);/ 创建ticke对象Ticket ticket = new Ticket("五月天演唱会门票", 500);/ 创建线程目标类SealWindow sealWindow = new SealWindow(ticket, center);/ 多次创建售票窗口new Thread(sealWindow,
22、 "窗口1").start();new Thread(sealWindow, "窗口2").start();new Thread(sealWindow, "窗口3").start();class Ticket / 票名private String name;/ 价格private int price;/ 无参构造public Ticket() super();/ 满参构造public Ticket(String name, int price) super(); = name;this.price = price;p
23、ublic String getName() return name;public void setName(String name) = name;public int getPrice() return price;public void setPrice(int price) this.price = price;class SealWindow implements Runnable / 用来获取售票中心的票数private int count;/ 中转对象private Ticket t = new Ticket();TicketSealCenter ts = n
24、ew TicketSealCenter();SealWindow(Ticket t, TicketSealCenter ts) this.t = t;this.ts = ts;/ 获取票的数量赋值给countcount = ts.getTickets();Overridepublic void run() / 使用同步加锁while (true) synchronized (this) / 如果票数大于0,说明还有票if (count > 0) / 输出售票信息System.out.println(Thread.currentThread().getName() + ":&qu
25、ot; + " 名字:" + t.getName() + "t"+ " 剩余数:" + count + " 单价:" + t.getPrice() + "元");/ 票数-1count-;class TicketSealCenter / 售票中心分配一定数量的票private int tickets;public TicketSealCenter() super();public TicketSealCenter(int tickets) super();this.tickets = ticke
26、ts;public int getTickets() return tickets;public void setTickets(int tickets) this.tickets = tickets;package com.itheima;/* * 海滩上有一堆桃子,五只猴子来分。 * 第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 * 第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份 * 第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子 * * */public class Test7 public
27、 static void main(String args) int monkey = 5;/ 调用分桃方法int p = peach(monkey);System.out.println("海滩上原来最少有" + p + "个桃子");public static int peach(int m) / 最后一个猴子分时就剩6个if (m = 1) return 6; else / 前1个猴子分的个数都是后一个猴子的4倍+1return peach(m - 1) * 5 + 1;package com.itheima;/* * 第8题: 编写一个方法,模拟
28、equals传入两个字符串,判断两个字符串内容是否完全相同? * * */public class Test8 public static void main(String args) / 定义两个字符串变量String s1 = "asd1"String s2 = "asd2"/ 调用比较方法boolean b = compareString(s1, s2);System.out.println(s1 + "与" + s2 + "是否相同:" + b);public static boolean compareS
29、tring(String s1, String s2) / 将字符串转换成char数组char charArray = s1.toCharArray();char charArray2 = s2.toCharArray();/ 长度不同,结束比较if (charArray.length != charArray2.length) return false; else / 每个字符进行匹配for (int i = 0; i < charArray.length; i+) if (charArrayi != charArray2i) return false;/ 匹配成功return tru
30、e;package com.itheima;import java.util.ArrayList;import java.util.ListIterator;/* * 第9题: 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。 * 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人? * 分析: * 应用List集合,将100个数放入其中 * 建一个int类型标识,当为14时清零 * 当List集合剩余最后一个不再比较 * 应用listIterator迭代元素,并对集合进行删除操作 */public class Test9 public static void main(String args) ArrayList<Integer> al = new ArrayList<Integer>();for (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中职(小学教育)小学教育心理学阶段测试试题及答案
- 2025年高职国际经济与贸易(国际经济与贸易教育心理学案例分析)试题及答案
- 2025年中职(工业机器人技术)机器人装配试题及答案
- 2025年中职电气运营应用(应用技术)试题及答案
- 2025年大学本科 体育运营与管理(运营实务)试题及答案
- 2025年中职(动漫与游戏制作)动画角色设计试题及答案
- 2025年中职(环境监测技术)水质检测实操试题及答案
- 2025年大学二年级(医疗器械与装备工程)器械检测阶段测试题及答案
- 2025年本科工业互联网工程(工业互联网设计)试题及答案
- 2025年大学二年级(人工智能教育)教学应用综合测试题及答案
- 养老院老人生活设施管理制度
- (2025年)林业系统事业单位招聘考试《林业知识》真题库与答案
- 2026年七台河职业学院高职单招职业适应性考试备考题库有答案解析
- 2026年直播服务合同
- 挂靠取消协议书
- 哲学史重要名词解析大全
- 辅导员工作的职责与使命课件
- 新疆交通职业技术学院教师招聘考试历年真题
- 吊篮租赁安拆分包合同
- (财务知识)用友T财务通普版基本操作详细资料
- GB/T 156-2017标准电压
评论
0/150
提交评论