十一、常用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) + "年是平年!");}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442840.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt Excel读写 - QXlsx的安装配置以及测试

Qt Excel读写 - QXlsx的安装配置以及测试 引言一、安装配置二、简单测试 引言 Qt无自带的库处理Excel 文件&#xff0c;但可通过QAxObject 借助COM接口进行Excel的读写1。亦可使用免费的开源第三方库&#xff1a;QXlsx&#xff0c;一个基于Qt库开发的用于读写Microsoft Excel文…

Java中Date时间类的使用

目录 一、java.util.Date实例化介绍 一&#xff09;、Date对象实例化 二&#xff09;设置Date对象指定日期 &#xff1a; 三&#xff09;将日期格式化输出为中文状态 二、方法介绍 三、方法演示 一、java.util.Date实例化介绍 一&#xff09;、Date对象实例化 //使用无参构造…

Day01_变量和数据类型(注释,关键字,标识符,数据类型,字面量,变量,常量,进制,计算机存储单位,Java的基本数据类型的存储范围,计算机如何表示数据)

文章目录 JavaSE_Day01 变量和数据类型学习目标1.1 注释&#xff08;*comment*&#xff09;&#xff08;掌握&#xff09;1.2 关键字&#xff08;*keyword*&#xff09;&#xff08;掌握&#xff09;1.3 标识符( identifier)&#xff08;掌握&#xff09;1.3.1 标识符的命名规则…

如果我要访问一个网址,那么在网络中会有哪些过程

访问一个网址是我们日常网络使用中非常常见的操作&#xff0c;背后涉及到一系列精密而复杂的步骤。这个过程包括DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求、服务器响应、浏览器渲染等环节。在这篇文章中&#xff0c;我们将深入探讨这些步骤&#xff0c;并解释它们在…

JVM 内存模型

1 什么是 JVM 内存模型 JVM 需要使用计算机的内存&#xff0c;Java 程序运行中所处理的对象或者算法都会使用 JVM 的内 存空间&#xff0c;JVM 将内存区划分为 5 块&#xff0c;这样的结构称之为 JVM 内存模型。 2 JVM 为什么进行内存区域划分 随着对象数量的增加&#xff…

“减半倒数80天”!比特币18个月后将飙涨四倍!但多数矿企短期面临亏损?

随着比特币现货ETF的顺利推出&#xff0c;比特币的另一个潜在的催化剂就是即将到来的第四次减半。据Bitcoin Block Half最新数据&#xff0c;目前距离比特币减半仅剩余约80天&#xff0c;预计将在今年4月22日发生&#xff0c;届时&#xff0c;每个区块的比特币奖励将从当前的6.…

常见分类网络的结构

VGG16 图片来自这里 MobilenetV3 small和large版本参数,图片来着这里 Resnet 图片来自这里

PCB设计10条重要布线原则(学习笔记)

文章目录 一、连线精简二、避免走直角线三、差分走线四、蛇形走线五、圆滑走线六、数字与模拟分开七、3W原则八、20H原则九、铜箔承载电流十、过孔承载电流 一、连线精简 尽量用最短的路径去布线 1、可以省资源 2、信号差损少 3、线能不拐弯就不拐弯 4、能不换层就不换层 二…

Modern C++ std::get<n>(tuple)的原理

1. 前言 前面我们讲过std::tuple的实现原理&#xff0c;但没有讲如何取出数据&#xff0c;本节着重讲讲这点。本节与之前的blog有较大关联&#xff0c;如果您没看&#xff0c;这里有链接&#xff0c;链接已按由浅入深排好序&#xff0c;您可以按顺序阅读。如果时间少可以直接看…

[工具探索]Safari 和 Google Chrome 浏览器内核差异

最近有些Vue3的项目&#xff0c;使用了safari进行测试环境搞开发&#xff0c;发现页面存在不同程序的页面乱码情况&#xff0c;反而google浏览器没问题&#xff0c;下面我们就对比下他们之间的差异点&#xff1a; 日常开发google chrome占多数&#xff1b;现在主流浏览器 Goog…

【零基础学习CAPL】——CAN报文的发送(配合Panel面板单次发送)

&#x1f64b;‍♂️【零基础学习CAPL】系列&#x1f481;‍♂️点击跳转 文章目录 1.概述2.面板创建2.1.新建一个Panel2.2. 在Panel中调出控件窗口2.3.控件添加与配置 3.系统变量创建4.系统变量与Panel绑定5.CAPL脚本实现6.效果 1.概述 使用场景&#xff0c;按下面板按钮同时…

存内计算——助力实现28nm等效7nm功效

算力是数字经济时代的核心生产力&#xff0c;并且近年来需求剧增。而我国当前的算力供给上仍面临巨大的挑战&#xff0c;一方面&#xff0c;国外的高端算力芯片被美国禁售&#xff0c;另一方面&#xff0c;国内的芯片产业仍处于发展阶段[1]。如何获取算力提升&#xff0c;成为当…