十一、常用API——练习

news2024/9/19 10:40:58

常用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);
            //除以2
            num = 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 + "天");

        //--------------------------
        //JDK8
        LocalDate 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.coloradmin.cn/o/1422308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【新课】安装部署系列Ⅲ—Oracle 19c Data Guard部署之两节点RAC部署实战

本课程由云贝教育-刘峰老师出品&#xff0c;感谢关注 课程介绍 Oracle Real Application Clusters (RAC) 是一种跨多个节点分布数据库的企业级解决方案。它使组织能够通过实现容错和负载平衡来提高可用性和可扩展性&#xff0c;同时提高性能。本课程基于当前主流版本Oracle 1…

017 JavaDoc生成文档

什么是JavaDoc 示例 package se;/*** 用于学习Java* author Admin* version 1.0* since 1.8*/ public class Test20240119 {/*** 主方法* param args*/public static void main(String[] args) {// 你好&#xff0c;世界System.out.println("Hello world");} } 写一…

故障诊断 | 一文解决,GRU门控循环单元故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,GRU门控循环单元故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

opencv#40 图像细化

图像细化原理 作用&#xff1a;图像细化是将图像的线条从多像素宽度减少到单位像素宽度的过程&#xff0c;又被称为“骨架化”&#xff0c;删除像素点的标准&#xff1a; 通常情况下&#xff0c;我们使用二值化图像&#xff0c;我们在判断是否要删除某些像素点时&#xff0c;要…

遍历删除空文件夹

文章目录 遍历删除空文件夹概述笔记END 遍历删除空文件夹 概述 在手工整理openssl3.2编译完的源码工程中的文档, 其中有好多空文件夹. 做了一个小工具, 将空文件夹都遍历删除掉. 这样找文档方便一些. 删除后比对了一下, 空文件夹还真不少. 笔记 // EmptyDirRemove.cpp : 此…

音视频数字化(数字与模拟-音频广播)

在互联网飞速发展的今天,每晚能坐在电视机前面的人越来越少,但是每天收听广播仍旧是很多人的习惯。 从1906年美国费森登在实验室首次进行无线电广播算起,“广播”系统已经陪伴人们115年了。1916年,收音机开始上市,收音机核心是“矿石”。1920年开始“调幅”广播,1941年开…

Uniapp小程序端打包优化实践

背景描述&#xff1a; 在我们最近开发的一款基于uniapp的小程序项目中&#xff0c;随着功能的不断丰富和完善&#xff0c;发现小程序包体积逐渐增大&#xff0c;加载速度也受到了明显影响。为了提升用户体验&#xff0c;团队决定对小程序进行一系列打包优化。 项目优化点&…

Optimism的挑战期

1. 引言 前序博客&#xff1a; Optimism的Fault proof 用户将资产从OP主网转移到以太坊主网时需要等待一周的时间。这段时间称为挑战期&#xff0c;有助于保护 OP 主网上存储的资产。 而OP测试网的挑战期仅为60秒&#xff0c;以简化开发过程。 2. OP与L1数据交互 L1&#xf…

无人机除冰保障电网稳定运行

无人机除冰保障电网稳定运行 近日&#xff0c;受低温雨雪冰冻天气影响&#xff0c;福鼎市多条输配电线路出现不同程度覆冰。 为保障福鼎电网安全可靠运行&#xff0c;供电所员工运用无人机飞行技术&#xff0c;通过在无人机下方悬挂器具&#xff0c;将无人机飞到10千伏青坑线…

第5章 python深度学习——波斯美女

第5章 深度学习用于计算机视觉 本章包括以下内容&#xff1a; 理解卷积神经网络&#xff08;convnet&#xff09; 使用数据增强来降低过拟合 使用预训练的卷积神经网络进行特征提取 微调预训练的卷积神经网络 将卷积神经网络学到的内容及其如何做出分类决策可视化 本章将…

HBase表结构

HBase是非关系型数据库&#xff0c;是高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库。 HBase使用场景 大规模数据存储&#xff1a;如日志记录、数据库备份等。实时数据访问&#xff1a;如实时搜索、实时分析等。高性能读写&#xff1a;如高并发、低延迟的读写操…

(2)(2.10) LTM telemetry

文章目录 前言 1 协议概述 2 配置 3 带FPV视频发射器的使用示例 4 使用TCM3105的FSK调制解调器示例 前言 轻量级 TeleMetry 协议 (LTM) 是一种单向通信协议&#xff08;从飞行器下行的数据链路&#xff09;&#xff0c;可让你以低带宽/低波特率&#xff08;通常为 2400 波…

Linux下如何编译C/C++代码?从.c到.exe经历了什么?

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

百度智能小程序开发平台:SEO关键词推广优化 带完整的搭建教程

移动互联网的普及&#xff0c;小程序成为了众多企业和开发者关注的焦点。百度智能小程序开发平台为开发者提供了一站式的解决方案&#xff0c;帮助企业快速搭建并推广自己的小程序。本文将重点介绍百度智能小程序开发平台的SEO关键词推广优化功能&#xff0c;并带完整的搭建教程…

MySQL原理(三)锁定机制(1)综述

一、介绍&#xff1a; 1、锁的本质 业务场景中存在共享资源&#xff0c;多个进程或线程需要竞争获取并处理共享资源&#xff0c;为了保证公平、可靠、结果正确等业务逻辑&#xff0c;要把并发执行的问题变为串行&#xff0c;串行时引入第三方锁当成谁有权限来操作共享资源的判…

06 单目初始化器 Initializer

文章目录 06 单目初始化器 Initializer6.1 成员变量/函数6.2 初始化函数 Initialize()6.3 计算基础矩阵 F \boldsymbol{F} F 和单应矩阵 H \boldsymbol{H} H6.3.1 RANSAC 算法6.3.2 八点法计算 F \boldsymbol{F} F 矩阵: ComputeF21()6.3.3 计算基础矩阵 F \boldsymbol{F} …

基于yolov2深度学习网络的视频手部检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 输入mp4格式的视频文件进行测试&#xff0c;视频格式为1080p30. 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................…

大数据分析案例-基于随机森林算法构建电影票房预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

软连接和硬链接

1.软连接 软连接是一个独立的文件&#xff0c;有独立的inode&#xff0c;也有独立的数据块&#xff0c;它的数据块里面保存的是指向的文件路径-------相当于windows的快捷方式 删除一个软连接 2.硬链接 所谓的建立硬链接&#xff0c;本质就是在特定目录的数据块中新增文件名和…

【大数据】Flink SQL 语法篇(三):窗口聚合(TUMBLE、HOP、SESSION、CUMULATE)

Flink SQL 语法篇&#xff08;三&#xff09;&#xff1a;窗口聚合 1.滚动窗口&#xff08;TUMBLE&#xff09;1.1 Group Window Aggregation 方案&#xff08;支持 Batch / Streaming 任务&#xff09;1.2 Windowing TVF 方案&#xff08;1.13 只支持 Streaming 任务&#xff…