当前位置: 首页 > news >正文

十一、常用API——练习

常用API——练习

  • 练习1 键盘录入
  • 练习2 算法水题
  • 练习3 算法水题
  • 练习4 算法水题
  • 练习5 算法水题


练习1 键盘录入

键盘录入一些1~100之间的整数,并添加到集合中。
直到集合中所有数据和超过200为止

public static void main(String[] args) {/*键盘录入一些1~100之间的整数,并添加到集合中。直到集合中所有数据和超过200为止*///0.创建一个集合用来添加数据ArrayList<Integer> list = new ArrayList<>();//1.键盘录入数据Scanner sc = new Scanner(System.in);while (true) {System.out.println("请输入一个整数:");String numStr = sc.nextLine();int num = Integer.parseInt(numStr);//数据异常判断if (num < 1 || num > 100) {System.out.println("当前数字不在1~100的范围当中,请重新输入!");continue;}/*将数据添加到集合中* 细节:* num:基本数据类型* 集合里面的数据是Integer* 在添加数据的时候触发了自动装箱*/list.add(num);//统计数据中所有的数据和int sum = getSum(list);//对sum进行判断if (sum > 200){System.out.println("集合中所有的数字满足要求!");break;}}//验证要求for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i) + " ");}}private static int getSum(ArrayList<Integer> list) {int sum = 0;for (int i = 0; i < list.size(); i++) {int num = list.get(i);sum += num;}return sum;}

练习2 算法水题

自己实现parseInt方法的效果,将字符串形式的数据转成整数。
要求:

  • 字符串中只能是数字不能有其他字符
  • 最少一位,最多10位
  • 0不能开头
public static void main(String[] args) {/*自己实现parseInt方法的效果,将字符串形式的数据转成整数。要求:字符串中只能是数字不能有其他字符最少一位,最多10位0不能开头*///0.定义一个字符串String str = "123456789";//1.校验字符串//习惯:会先把异常数据进行过滤,剩下来就是正常的数据if (!str.matches("[1-9]\\d{0,9}")) {//错误的数据System.out.println("数据格式有误");} else {//正确的数据System.out.println("数据格式正确");//2. 定义一个变量表示最终的结果int num = 0;//3.遍历字符串得到里面的每一个字符for (int i = 0; i < str.length(); i++) {int c = str.charAt(i) - '0';num = num * 10 + c;}System.out.println(num);}}

练习3 算法水题

定义一个方法自己实现toBinaryString方法的效果,将一个十进制整数转成字符串表示的二进制

在这里插入图片描述

public static void main(String[] args) {/*定义一个方法自己实现toBinaryString方法的效果,将一个十进制整数转成字符串表示的二进制*/System.out.println(toBinaryString(123));//验证System.out.println(Integer.toBinaryString(123));}private static String toBinaryString(int num) {/*核心逻辑:不断地去除以2,得到余数,一直到商为0就结束* 需要把余数倒着拼接起来*///0.定义一个StringBuilder()用来 拼接余数StringBuilder sb = new StringBuilder();//1.利用循环不断地除以2获取余数while (true){if (num==0) break;//获取余数int remaindar = num % 2;//倒着拼接sb.insert(0,remaindar);//除以2num = num / 2;}return sb.toString();}

练习4 算法水题

请使用代码实现计算你活了多少天,用JDK7和JDK8两种方法实现

public static void main(String[] args) throws ParseException {//请使用代码实现计算你活了多少天,用JDK7和JDK8两种方法实现//JDK7//规则:只要对时间进行计算或者判断,都需要先获取当前时间的毫秒值//0.计算出生年月日的毫秒值String birthday = "2002年4月11日";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");Date date = sdf.parse(birthday);long birthdaytime = date.getTime();//1.获取当前时间的毫秒值long todayTime = System.currentTimeMillis();//2.计算间隔多少天long time = todayTime - birthdaytime;System.out.println(time / 1000 / 60 / 60 / 24 + "天");//--------------------------//JDK8LocalDate d1 = LocalDate.of(2002, 4, 11);LocalDate d2 = LocalDate.now();long days = ChronoUnit.DAYS.between(d1, d2);System.out.println(days + "天");}

练习5 算法水题

判断任意的一个年份是闰年还是平年
要求:用JDK7和JDK8两种方式判断
提示:

  • 二月有29天是闰年
  • 一年又366天是闰年
public static void main(String[] args) {/*判断任意的一个年份是闰年还是平年要求:用JDK7和JDK8两种方式判断提示:* 二月有29天是闰年* 一年又366天是闰年*///JDK7//方法1:JDK7Method1();//方法2:JDK7Method2();//JDK8//方法1:JDK8Method1();//方法2://把时间设置为2000年3月1日LocalDate ld = LocalDate.of(2000, 3, 1);//true:闰年  false:平年boolean result = ld.isLeapYear();System.out.println(result);if (result){System.out.println(ld.getYear() + "年是闰年!");}else {System.out.println(ld.getYear() + "年是平年!");}}private static void JDK8Method1() {//把时间设置为2000年3月1日LocalDate ld = LocalDate.of(2000, 3, 1);//再把日历往前减一天LocalDate ld2 = ld.minusDays(1);//看当前的时间是28号还是29号?int dayOfMonth = ld2.getDayOfMonth();System.out.println(dayOfMonth);if (dayOfMonth==29){System.out.println(ld2.getYear() + "年是闰年!");}else {System.out.println(ld2.getYear() + "年是平年!");}}private static void JDK7Method2() {/*简化2:* 我们可以把时间设置为2001年1月1日*/Calendar c = Calendar.getInstance();c.set(2001,0,1);//再把日历往前减一天c.add(Calendar.DAY_OF_MONTH, -1);//看当前的时间是有366天还是365天int dayofYear = c.get(Calendar.DAY_OF_YEAR);System.out.println(dayofYear);if (dayofYear==366){System.out.println(c.get(Calendar.YEAR) + "年是闰年!");}else {System.out.println(c.get(Calendar.YEAR) + "年是平年!");}}private static void JDK7Method1() {/*简化1:* 我们可以把时间设置为2000年3月1日*/Calendar c = Calendar.getInstance();c.set(2000,2,1);//再把日历往前减一天c.add(Calendar.DAY_OF_MONTH,-1);//看当前的时间是28号还是29号?int day = c.get(Calendar.DAY_OF_MONTH);System.out.println(day);if (day==29){System.out.println(c.get(Calendar.YEAR) + "年是闰年!");}else {System.out.println(c.get(Calendar.YEAR) + "年是平年!");}}

相关文章:

  • 《HTML 简易速速上手小册》第8章:HTML 表单高级技术(2024 最新版)
  • 【云上建站】快速在云上构建个人网站3——网站选型和搭建
  • 用ASM HEMT模型提取GaN器件的参数
  • VUE!!!必看
  • ElementUI Form:Input 输入框
  • 消息中间件(MQ)对比:RabbitMQ、Kafka、ActiveMQ 和 RocketMQ
  • 本地socket通信
  • linux ping 某台服务的端口
  • C#中的WebApi响应Accept头,自动返回xml或者json
  • SpringBoot中异步方法的使用
  • 【Vue】vue项目中使用tinymce富文本组件(@tinymce/tinymce-vue)
  • KAFKA鉴权设计以及相关探讨
  • 2024第16届中国西部教体融合博览会在成渝双城举办
  • Log4j2-24-log4j2 相同的日志打印 2 次
  • Phoncent博客GPT写作工具
  • 【翻译】babel对TC39装饰器草案的实现
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • Docker 笔记(2):Dockerfile
  • JavaScript设计模式系列一:工厂模式
  • Mysql优化
  • Quartz初级教程
  • React-生命周期杂记
  • Sublime text 3 3103 注册码
  • windows-nginx-https-本地配置
  • 从零开始在ubuntu上搭建node开发环境
  • 当SetTimeout遇到了字符串
  • 理解在java “”i=i++;”所发生的事情
  • 全栈开发——Linux
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 小程序01:wepy框架整合iview webapp UI
  • 异常机制详解
  • 用简单代码看卷积组块发展
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 整理一些计算机基础知识!
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #微信小程序:微信小程序常见的配置传值
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (蓝桥杯每日一题)love
  • (三)终结任务
  • (万字长文)Spring的核心知识尽揽其中
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)Dubbo快速入门、介绍、使用
  • (原)本想说脏话,奈何已放下
  • (转)Linq学习笔记
  • (转)mysql使用Navicat 导出和导入数据库
  • **PHP分步表单提交思路(分页表单提交)
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @Responsebody与@RequestBody
  • [.NET]桃源网络硬盘 v7.4