Java综合题目
分支, 循环, 数据类型 1, 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2, 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 3, 题目:求1!+2!+3!+...+20!的和(5!表示5的阶乘, 即5*4*3*2*1) 4, 题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 5, 题目:先写一个程序, 随机生成一个3*3的矩阵数字(1-9数字全部用到不能重复), 然后求这个3*3矩阵对角线元素之和 6, 回忆包装类对应的基础数据类型和基本方法的使用 将字符串转成数字(Long, Integer, Short, Byte, Double, Float) 字符串转换成字符数组, 并分别输出 7, 查API文档, 找出将2进制, 8进制, 16进制形式的字符串转换成的Integer数字的方法, 在控制台上打印出来 8, 取一个随便的字符串中字母出现的次数, 打印出来 9, 有一个字符串形式的任意日期是"yyyy-MM-dd"的格式, 计算这个日期到1949年10月1日差了多少天
面向对象+容器+流
1, 从data.txt文件中读取数据到程序中, 实现一个联动功能, 即输入主食会显示"1---馒头 2---煎饼 3---米饭", 再次输入会显示下一级菜单 data.txt文件中每一行都有被 "," 分割的三个值, 第一个值代表这项食物的编号(对于整个数据来说是唯一的), 第三个值表示所属的上一级食物分类 2, 写一个程序统计一个项目中src下的所有 .java 文件的代码行数(用流的知识) 读到流 去空格 查看开始结尾
3, 写一个带线程同步的程序模拟5个人在火车站买票, 总共有4张票
1 //1, 题目:有1、2、3、4个数字,能组成多少个互7;不相同且无重复数字的三位数?
2 //都是多少?
3 public static void t1(){
4 int num=0;
5
6 for(int i=1;i<=4;i++){
7 for(int j=1;j<=4;j++){
8 for(int k=1;k<=4;k++){
9 if(i!=j&&i!=k&&j!=k){
10 num+=1;
11 System.out.println(i*100+j*10+k);
12 }
13 }
14 }
15 }
16 System.out.println("共有"+num+"种方案");
17 }
1 public static void t2(){
2 //2, 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
3 double s=2;
4 double x=1;
5 double temp;
6 double sum=0;
7 for(int i=0;i<20;i++){
8 sum=s/x+sum;
9 temp=x;
10 x=s;
11 s=temp+s;
12 }
13 System.out.println(sum);
14 }
1 public static long jiecheng(long l){
2 //求阶乘
3 long k=1;
4 for(int i=1;i<=l;i++){
5 k=k*i;
6 }
7 return k;
8 }
9 public static void t3(){
10 //求1!+2!+3!+...+20!的和(5!表示5的阶乘, 即5*4*3*2*1)
11 long sum=0;
12 for(int i=1;i<=20;i++){
13 sum=sum+jiecheng(i);
14 }
15 System.out.println(sum);
16 }
1 public static void t4(){
2 //一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
3 Scanner sc=new Scanner(System.in);
4 String s=sc.nextLine();
5 String[] ss=s.split("");
6 if(ss[0].equals(ss[4])&&ss[1].equals(ss[3])){
7 System.out.println("是回文数");
8 }else{
9 System.out.println("不是回文数");
10 }
11 sc.close();
12 }
1 public static void t5(){
2 //5, 题目:先写一个程序, 随机生成一个3*3的矩阵数字(1-9数字全部用到不能重复), 然后求这个3*3矩阵对角线元素之和
3 List l1=new ArrayList();
4 List l2=new ArrayList();
5 List l3=new ArrayList();
6 Random r=new Random();
7 List list=new ArrayList();
8 for(int i=1;i<=9;i++){
9 list.add(i);
10 }
11 for(int j=0;j<3;j++){
12 l1.add(list.remove(r.nextInt(9-j)));
13 }
14 for(int j=0;j<3;j++){
15 l2.add(list.remove(r.nextInt(6-j)));
16 }
17 for(int j=0;j<3;j++){
18 l3.add(list.remove(r.nextInt(3-j)));
19 }
20 System.out.println(l1);
21 System.out.println(l2);
22 System.out.println(l3);
23 System.out.println((int)l1.get(0)+(int)l2.get(1)+(int)l3.get(2)+(int)l1.get(2)+(int)l3.get(0));
24 }
1 public static void t6(){
2 //将字符串转成数字(Long, Integer, Short, Byte, Double, Float)
3 //字符串转换成字符数组, 并分别输出
4 Scanner sc=new Scanner(System.in);
5 System.out.println("请输入字符串数字");
6 String s=sc.nextLine();
7 System.out.println("Integer "+Integer.parseInt(s));
8 System.out.println("Long "+Long.parseLong(s));
9 System.out.println("Short "+Short.parseShort(s));
10 System.out.println("Byte "+Byte.parseByte(s));
11 System.out.println("Double "+Double.parseDouble(s));
12 System.out.println("Float "+Float.parseFloat(s));
13 System.out.println(Arrays.toString(s.toCharArray()));
14 }
1 public static void t7(){
2 //查API文档, 找出将2进制, 8进制, 16进制形式的字符串转换成的Integer数字的方法, 在控制台上打印出来
3 //十六进制转成十进制
4 System.out.println(Integer.parseInt("FFFF",16));
5 //八进制转成十进制
6 System.out.println(Integer.parseInt("777",8));
7 //二进制转成十进制
8 System.out.println(Integer.parseInt("110",2));
9 }
1 public static void t8(){
2 //取一个随便的字符串中字母出现的次数, 打印出来
3 Scanner sc=new Scanner(System.in);
4 System.out.println("请输入字符串");
5 String s=sc.nextLine();
6 Map<String, Integer> map = new HashMap<String, Integer>();
7 String[] ss = s.split("");
8
9 for (String _s : ss) {
10 map.put(_s, map.get(_s) == null ? 1 : map.get(_s) + 1);
11 }
12 System.out.println(map);
13 }
1 public static void t9(){
2 //有一个字符串形式的任意日期是"yyyy-MM-dd"的格式, 计算这个日期到1949年10月1日差了多少天
3 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
4 Date smdate = null;
5 Date bdate = null;
6 try {
7 smdate = sdf.parse("1949-10-1");
8 bdate = sdf.parse("1949-09-1");
9 smdate=sdf.parse(sdf.format(smdate));
10 bdate=sdf.parse(sdf.format(bdate));
11 } catch (ParseException e) {
12 // TODO Auto-generated catch block
13 e.printStackTrace();
14 }
15 Calendar cal = Calendar.getInstance();
16 cal.setTime(smdate);
17 long time1 = cal.getTimeInMillis();
18 cal.setTime(bdate);
19 long time2 = cal.getTimeInMillis();
20 long between_days=(time2-time1)/(1000*3600*24);
21
22 System.out.println(String.valueOf(between_days));
23 }
从data.txt文件中读取数据到程序中, 实现一个联动功能, 即输入主食会显示"1---馒头 2---煎饼 3---米饭", 再次输入会显示下一级菜单 data.txt文件中每一行都有被 "," 分割的三个值, 第一个值代表这项食物的编号(对于整个数据来说是唯一的), 第三个值表示所属的上一级食物分类
1 package com.hanqi.maya.test;
2
3 public class Food {
4 private String id;
5 private String name;
6 private String parentid;
7
8 public Food(String id, String name, String parentid) {
9 super();
10 this.id = id;
11 this.name = name;
12 this.parentid = parentid;
13 }
14
15 public String getId() {
16 return id;
17 }
18
19 public void setId(String id) {
20 this.id = id;
21 }
22
23 public String getName() {
24 return name;
25 }
26
27 public void setName(String name) {
28 this.name = name;
29 }
30
31 public String getParentid() {
32 return parentid;
33 }
34
35 public void setParentid(String parentid) {
36 this.parentid = parentid;
37 }
38
39 @Override
40 public String toString() {
41 return "Food [id=" + id + ", name=" + name + ", parentid=" + parentid + "]";
42 }
43
44 }
1 package com.hanqi.maya.test;
2
3 import java.io.BufferedReader;
4 import java.io.File;
5 import java.io.FileNotFoundException;
6 import java.io.FileReader;
7 import java.io.IOException;
8 import java.io.Reader;
9 import java.util.ArrayList;
10 import java.util.List;
11 import java.util.Scanner;
12
13 import java.io.File;
14 import java.io.FileNotFoundException;
15 import java.io.FileReader;
16 import java.io.IOException;
17 import java.io.Reader;
18 import java.util.ArrayList;
19 import java.util.List;
20 import java.util.Scanner;
21
22 public class Test10 {
23 public static void main(String[] args) {
24 File file = new File("E:\Java\0803test\data.txt");
25 List<Food> list = new ArrayList<Food>();
26 Reader reader = null;
27 try {
28 reader = new FileReader(file);
29 BufferedReader br = new BufferedReader(reader);
30 String s = null;
31 while((s = br.readLine())!=null) {
32 String[] ss = s.split(",");
33 if(ss.length==3) {
34 Food food = new Food(ss[0],ss[1],ss[2]);
35 list.add(food);
36 }
37 }
38 br.close();
39
40 } catch (FileNotFoundException e) {
41 e.printStackTrace();
42 } catch (IOException e) {
43 e.printStackTrace();
44 }
45 for(Food ff : list) {
46 if("0".equals(ff.getParentid())) {
47 System.out.println(ff.getId()+"---"+ff.getName());
48 }
49 }
50
51 Scanner scanner = new Scanner(System.in);
52 boolean flag = true;
53 String in_str = scanner.nextLine();
54 while(flag) {
55 if("exit".equals(in_str)) {
56 flag = false;
57 } else {
58 printFood(list, in_str);
59 in_str = scanner.nextLine();
60 }
61 }
62 scanner.close();
63
64 }
65
66 public static void printFood(List<Food> list, String pid) {
67 for(Food ff : list) {
68 if(pid.equals(ff.getParentid())) {
69 System.out.println(ff.getId()+"---"+ff.getName());
70 }
71 }
72 }
73
74 }
写一个程序统计一个项目中src下的所有 .java 文件的代码行数(用流的知识)
1 package practise;
2
3 import java.io.BufferedReader;
4 import java.io.File;
5 import java.io.FileNotFoundException;
6 import java.io.FileReader;
7 import java.io.IOException;
8 import java.io.Reader;
9
10 public class Test11 {
11
12 private static int daima;
13 private static int kongbai;
14 private static int zhushi;
15
16 public static void main(String[] args) {
17 // F: 603 715testsrc
18
19 /*
20 * 统计代码行数 代码行数 注释行数 空白行数
21 */
22
23 File file = new File("F:\0603\0715\test\src");
24
25 if (file.exists()) {
26 countor(file);
27 System.out.println("代码行数: " + daima);
28 System.out.println("空白行数: " + kongbai);
29 System.out.println("注释行数: " + zhushi);
30 } else {
31 System.out.println("找不到路径 !");
32 }
33
34 }
35
36 public static void countor(File file) {
37
38 File[] f_list = file.listFiles();//获取文件夹下文件和子文件夹
39
40 for (File f : f_list) {
41 if (f.isDirectory()) {
42 countor(f);
43 } else {
44 try {
45 boolean flag = false;
46 Reader reader = new FileReader(f);//读取文件
47 BufferedReader br = new BufferedReader(reader);
48 String s = null;
49 while ((s = br.readLine()) != null) {
50 System.out.println(s);
51 if (s.trim().startsWith("/*")) {
52 flag = true;
53 } else if (s.trim().endsWith("*/")) {
54 flag = false;
55 } else if (flag) {
56 zhushi++;
57 } else if (s.trim().startsWith("//")) {
58 zhushi++;
59 } else if (s.trim().length() != 0
60 && !(s.trim().startsWith("/*")
61 && s.trim().startsWith("//"))) {
62 daima++;
63 } else if (!flag&&s.trim().length() == 0) {
64 kongbai++;
65 }
66 }
67 br.close();
68 } catch (FileNotFoundException e) {
69 e.printStackTrace();
70 } catch (IOException e) {
71 e.printStackTrace();
72 }
73
74 }
75 }
76 }
77
78 }
写一个带线程同步的程序模拟5个人在火车站买票, 总共有4张票
1 package practise;
2
3 import model.Station;
4
5 public class Test12 {
6
7 public static void main(String[] args) {
8
9 MyThread mt = new MyThread();
10
11 Thread t1 = new Thread(mt);
12 t1.setName("甲");
13 Thread t2 = new Thread(mt);
14 t2.setName("乙");
15 Thread t3 = new Thread(mt);
16 t3.setName("丙");
17 Thread t4 = new Thread(mt);
18 t4.setName("丁");
19 Thread t5 = new Thread(mt);
20 t5.setName("二");
21
22 t1.start();
23 t2.start();
24 t3.start();
25 t4.start();
26 t5.start();
27 }
28
29 }
30
31
32 class MyThread implements Runnable {
33 public Station station = new Station();
34
35 @Override
36 public void run() {
37 station.sale(Thread.currentThread().getName());
38 }
39 }
1 package model;
2
3 public class Station {
4 public int tickets = 4;
5
6 public synchronized void sale(String name) {
7 if (tickets > 0) {
8 try {
9 Thread.sleep(1);
10 } catch (InterruptedException e) {
11 // TODO Auto-generated catch block
12 e.printStackTrace();
13 }
14 System.out.println(name + "买走了第" + tickets-- + "张票");
15 } else {
16 System.out.println("票没了");
17 }
18 }
19 }
- BZOJ 3038: 上帝造题的七分钟2【线段树区间开方问题】
- BZOJ 3211: 花神游历各国【线段树区间开方问题】
- WP、Win10开发或者WPF开发时绘制自定义窗体~例如:一个手机
- 【Java学习笔记之八】JavaBean中布尔类型使用注意事项
- BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】
- BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】
- 【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸
- BZOJ 1293: [SCOI2009]生日礼物【单调队列】
- Javascript缓存投毒学习与实战
- 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
- Codeforces 839B Game of the Rows【贪心】
- Codeforces 839A Arya and Bran【暴力】
- 【Java学习笔记之十一】Java中常用的8大排序算法详解总结
- 浅谈zip格式处理逻辑漏洞
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Hibernate入门篇(三)——编写第一个Hibernate例子
- RabbitMQ与Kafka选型对比
- Hibernate进阶篇(三)——transaction简介
- Elastic search N-gram tokenizer
- java.io.IOException: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 110
- io.protostuff.runtime.RuntimeUnsafeFieldFactory cannot have the same number
- dubbo 调用报Null 空指针 ,可能并不是真正的空指针
- Hibernate单表操作(四)——组件属性
- Dubbo consumer消费端启动报错java.lang.RuntimeException: [source error] not available in a static method: h
- Groovy小记it关键字和IDE报错
- 05 . Jenkins定制主题和设置项目构建信息输出颜色
- 腾讯云物联网平台使用报告
- 01 . PostgreSQL简介部署
- 01 . Git常用命令及方法和分支管理
- 记一次公司mssql server密码频繁被改的事件