java面试题
某公司的java面试题(本人菜鸟一枚 发出来集思广益 供交流参考 第一次自己写 有点小激动 还请大佬留下宝贵建议)

package day14;import org.junit.Test;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.ArrayList;/*** @author Tony* @create 2021-08-20 17:07*/
public class Work1 {public String generateSummary(String input)  {int totalIncome = 0;//总收入int dayIncome = 0;//当天收入int payMent = 0;//总支出int daypayment = 0;//当天支出int profit = 0;//总结余int dayprofit = 0;//当天结余StringBuilder totalDayInfo = new StringBuilder();//输出总的信息String regex = " ";String[] info = input.split(regex);ArrayList<String> date = new ArrayList<String>();//存储日期ArrayList<String> hour = new ArrayList<String>();//存储时间段ArrayList<String> numofpeople = new ArrayList<String>();//存储人数for (int i = 0; i < info.length; i++) {if ((i + 1) % 3 == 0) {numofpeople.add(info[i]);} else if ((i + 1) % 3 == 2) {hour.add(info[i]);} else if ((i + 1) % 3 == 1) {date.add(info[i]);}}//获取每天人数 转化为int类型方便后面使用int[] daynumpeople = new int[numofpeople.size()];for (int i = 0; i < daynumpeople.length; i++) {daynumpeople[i] = Integer.parseInt(numofpeople.get(i));}//方法内部类class Method {//订场方法public int bookPolicy(int numpeople) {int T = 0;int X = numpeople % 6;if (numpeople < 4) {} else if (numpeople <= 6) {T = 1;} else if ( numpeople <= 12) {T = 2;} else if (numpeople / 6 == 2 || numpeople / 6 == 3) {if (X >= 4 && numpeople / 6 == 2) {T = 3;} else if (X >= 4 && numpeople / 6 == 3) {T = 4;} else if (numpeople / 6 == 2) {T = 2;} else if (numpeople / 6 == 3) {T = 3;}} else if (numpeople / 6 > 3) {T = numpeople / 6;}return T;}//收费方法public int charge(int dayvalue, int starthour, int endhour) {int chargesite = 0;//每台收的钱int chargesite1 = 0;int chargesite2 = 0;if (dayvalue >= 1 && dayvalue <= 5) {if (starthour >= 9 && endhour <= 12) {chargesite = (endhour - starthour) * 30;} else if (starthour >= 12 && endhour <= 18) {chargesite = (endhour - starthour) * 40;} else if (starthour >= 18 && endhour <= 20) {chargesite = (endhour - starthour) * 80;} else if (starthour >= 20 && endhour <= 22) {chargesite = (endhour - starthour) * 60;} else {if(starthour<12){chargesite1 = (12 - starthour) * 30;chargesite2 = (endhour - 12) * 40;chargesite = chargesite1 + chargesite2;}else if (starthour<18){chargesite1 = (18 - starthour) * 40;chargesite2 = (endhour - 18) * 80;chargesite = chargesite1 + chargesite2;}else if(starthour<20){chargesite1 = (20 - starthour) * 80;chargesite2 = (endhour - 20) * 60;}}} else {if (starthour >= 9 && endhour <= 12) {chargesite = (endhour - starthour) * 40;} else if (starthour >= 12 && endhour <= 18) {chargesite = (endhour - starthour) * 50;} else if (starthour >= 16 && endhour <= 22) {chargesite = (endhour - starthour) * 60;} else {if(starthour<12&&endhour>12){chargesite1 = (12 - starthour) * 40;chargesite2 = (endhour - 12) * 50;chargesite = chargesite1 + chargesite2;}else if(starthour<18&&endhour>18){chargesite1 = (18 - starthour) * 50;chargesite2 = (endhour - 18) * 60;}}}return chargesite;}}Method m = new Method();//方法对象String regex1 = " ";String regex2 = "~";StringBuilder newHour = new StringBuilder();for (String s : hour) {String temp = s + " ";newHour.append(temp);}String[] splitHour = newHour.toString().split(regex1);for (int i = 0; i < splitHour.length; i++) {//每天的信息String[] split = splitHour[i].split(regex2);DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");String temp = date.get(i) + " " + split[0];String temp1 = date.get(i) + " " + split[1];TemporalAccessor parse = pattern.parse(temp);//将日期与小时段拼接 方便获取计算TemporalAccessor parse1 = pattern.parse(temp1);LocalDateTime from = LocalDateTime.from(parse);LocalDateTime from1 = LocalDateTime.from(parse1);int dayvalue = from.getDayOfWeek().getValue();//获取星期几dayIncome = daynumpeople[i] * 30;int i1 = m.bookPolicy(daynumpeople[i]);int charge = m.charge(dayvalue, from.getHour(), from1.getHour());if (daynumpeople[i] < 4) {dayIncome = 0;dayprofit = 0;daypayment = 0;String dayinfo = "" + date.get(i) + " " + hour.get(i) + " +" + dayIncome + "    -" + daypayment + "    " + dayprofit + "!";totalDayInfo.append(dayinfo);continue;}daypayment = i1 * charge;totalIncome = totalIncome + dayIncome;payMent = payMent + daypayment;profit = totalIncome - payMent;dayprofit = dayIncome - daypayment;if(dayprofit<0){String dayinfo = "" + date.get(i) + " " + hour.get(i) + " +" + dayIncome + "  -" + daypayment + " " + dayprofit + "!";totalDayInfo.append(dayinfo);continue;}if(i==splitHour.length-1){//防止在最后一次拼接的时候+上"!"导致后面切割出现换行String dayinfo = "" + date.get(i) + " " + hour.get(i) + " +" + dayIncome + "  -" + daypayment + " -" + dayprofit;totalDayInfo.append(dayinfo);//将每天信息拼接break;}String dayinfo = "" + date.get(i) + " " + hour.get(i) + " +" + dayIncome + "  -" + daypayment + " -" + dayprofit + "!";totalDayInfo.append(dayinfo);//将每天信息拼接}totalDayInfo.append("!").append("Total Income:").append(totalIncome).append("!").append("Total Payment:").append(payMent).append("!").append("Profit:").append(profit);return totalDayInfo.toString();}@Test//单元测试方法public void test1() {String s = generateSummary("2016-06-02 20:00~22:00 7 " +"2016-06-03 09:00~12:00 14 " +"2016-06-04 14:00~17:00 22 " +"2016-06-05 19:00~22:00 3 " +"2016-06-06 12:00~15:00 15 " +"2016-06-07 15:00~17:00 12 " +"2016-06-08 10:00~13:00 19 " +"2016-06-09 16:00~18:00 16 " +"2016-06-10 20:00~22:00 5 " +"2016-06-11 13:00~15:00 11 ");String regex = "!";String[] split = s.split(regex);for (String s1 : split) {System.out.println(s1);}}
}

java某公司面试题相关推荐

  1. java面试官:程序员,请你告诉我是谁把公司面试题泄露给你的?

    前情提要: **面试官:**你好!请先做一下自我介绍! **程序员:**balabalabala- 前戏先过了- **面试官:**先介绍SpringCloud核心组件及其作用 **程序员:**Spri ...

  2. java陷阱常见面试题_Java常见陷阱

    java陷阱常见面试题 总览 Java是一种极简主义的语言,具有比其他语言故意更少的功能,尽管如此,Java仍然具有产生奇怪效果的边缘情况,甚至具有令人惊讶的效果的一些常见情况也会使您轻而易举. 如果 ...

  3. JAVA程序员面试题集合

    JAVA程序员面试题集合 分类: 编程语言 2012-12-08 12:10 50人阅读 评论(0) 收藏 举报 1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些 ...

  4. 2021年100题Java春招面试题

    2021年100题Java春招面试题 开发技术类 1. 为什么现在函数式编程这么越来越受关注?为什么函数式编程重要?什么时候适用函数式语言? 函数式编程有什么好处,和面向对象比有什么好处,有什么坏处. ...

  5. java面试编程面试题_完美的编程面试问题

    java面试编程面试题 by Sachin Malhotra 由Sachin Malhotra 完美的编程面试问题 (The Perfect Programming Interview Problem ...

  6. Java实习生常规技术面试题每日十题Java基础(七)

    目录 1. Java设计模式有哪些? 2.GC是什么?为什么要有GC? 3. Java中是如何支持正则表达式. 4.比较一下Java和JavaSciprt. 5.Math.round(11.5) 等于 ...

  7. JAVA面试、笔试题

    @[TOC]目录 JAVA面试.笔试题 @目录 一. CoreJava部分 7 1. java中有哪些基本类型? 7 2. java反射 7 3. 易错,理解题 7 4. Java有几种创建对象的方法 ...

  8. 2016Android公司面试题

    2016年4月某公司面试题及面试流程. 静态内部类.内部类.匿名内部类,为什么内部类会持有外部类的引用?持有的引用是this?还是其它? 静态内部类:使用static修饰的内部类 内部类:就是在某个类 ...

  9. 备战金九银十,腾讯 T4 梳理 2022 年最全 999 道 Java 岗必备面试题答案

    前言 今年马上又准备迎接金九银十了,你是否还在寻找没有"996"的公司,或者你在面试上面摘了跟头?准备了体体面面的自我介绍,败在了技术深度上:又或者技术知识背得完完全全,却输在了面 ...

最新文章

  1. Camera ISP技术
  2. 据廖雪峰python3教程----python学习第二天
  3. 三大运营商3G无线上网套餐资费对比
  4. Awk 实例,第 1 部分
  5. 用ram实现寄存器堆_Verilog如何实现低功耗设计?
  6. JQuery闭包,插件的写法
  7. 外部中断---STM32F1
  8. 使用beego开发多表查询返回字段问题
  9. Java坦克大战(四)
  10. 呼叫中心IVR系统的介绍
  11. 【解题报告】SRM-08
  12. 2022-2027年中国智能化设计行业发展前景及投资战略咨询报告
  13. oracle 2703,Oracle11gR2光钎链路切换crs服务发生crash
  14. tahoma字体对中文字的影响
  15. 利用java编写网络聊天程序并加密信息
  16. ES6 生成器(Generator)
  17. 数字图像处理之频域滤波
  18. alibab的滑动验证
  19. 5G NR SUL CA DC对比
  20. 细粒度分类之NTS_NET解读

热门文章

  1. 吃货的痛点:鱼龙混杂,究竟我该相信谁
  2. 好文章也是要色香味俱全的!——CVPR2010最有趣文章
  3. 2020南京理工大学计算机考研经验
  4. 串口转以太网模块:WIZ108SR(用户手册)
  5. 人脸检测算法落地详解
  6. halcon基于形状的模板匹配第三例:rectify_result.hdev
  7. summernote网页编辑器嵌入视频
  8. 自适应网站与响应式网站的区别在哪?
  9. 学校网站建设制作:学校站群系统需要哪些栏目规划设计?
  10. python模拟鼠标键盘点击,简单自动化动物餐厅