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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SolidWorks曲面功能介绍

在SolidWorks中提供了功能丰富的曲面功能&#xff0c;那为什么我们需要使用曲面功能&#xff1f;曲面功能一般是在处理一些复杂外形的时候来使用&#xff0c;这些形状需要通过曲线的变化来控制&#xff0c;从而得到满意的外形&#xff0c;一般来说这样的外形是很难通过实体建模…

集成学习之Boosting方法系列_XGboost

文章目录 【文章系列】【前言】【算法简介】【正文】&#xff08;一&#xff09;XGBoost前身&#xff1a;梯度提升树&#xff08;二&#xff09;XGBoost的特点&#xff08;三&#xff09;XGBoost实际操作1. 前期准备&#xff08;1&#xff09;数据格式&#xff08;2&#xff09…

(2)(2.10) LTM telemetry

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

Mamba系列日积月累(一):状态空间模型SSM的离散化过程推导

文章目录 1. 背景基础知识1.1 什么是状态空间模型&#xff08;State Space Model&#xff0c;SSM&#xff09;&#xff1f;1.2 什么是离散化&#xff08;Discretization&#xff09;&#xff1f;1.3 为什么需要离散化&#xff1f; 2. SSM离散化过程推导2.1 为什么在离散化过程中…

Windows断开映射磁盘提示“此网络连接不存在”,并且该磁盘直在资源管理器中

1、打开注册表编辑器 快捷键winR 打开“运行”&#xff0c; 输入 regedit 2、 删除下列注册表中和无法移除的磁盘相关的选项 \HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\ 3、打开“任务管理器”&#xff0c;重新启动“Windows资源…

vue3源码(三)computed

1.功能 接受一个 getter 函数&#xff0c;并根据 getter 的返回值返回一个不可变的响应式 ref 对象。 默认不执行&#xff0c;在取值时执行&#xff0c;具有缓存功能&#xff0c;数据不变多次取值只触发一次取值计算。 import {reactive,effect,computed,} from "/node_…

蓝桥杯AT24C02问题记录

问题1&#xff1a;从这个图片上可以看出这两个在IIC的.c文件里延时时间不一样&#xff0c;第一张图使用了15个_nop_(); 12M晶振机器周期是 1/12M*121uS&#xff1b;nop()要延时1个指令周期。延时时间不对会对时序产生影响&#xff0c;时序不对&#xff0c;则AT24C02有没被使用…

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

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

nginx 编译安装sticky时报错处理

一般企事业单位的内网按照部门划分网段&#xff0c;ip hash 的负载均衡策略容易导致负载失衡&#xff0c;比如某个网段地址多&#xff0c;一些网段地址少&#xff0c;IP hash是基于IPv4地址的前三段来区分的&#xff08;开发者可能觉得机器处理区分所有IP太累么&#xff1f;配置…

医院如何筛选安全合规的内外网文件交换系统?

医院内外网文件交换系统是专为医疗机构设计的&#xff0c;用于在内部网络&#xff08;内网&#xff09;和外部网络&#xff08;外网&#xff09;之间安全、高效地传输敏感医疗数据和文件的解决方案。这种系统对于保护患者隐私、遵守医疗数据保护法规以及确保医疗服务的连续性和…

牛客网-----------[NOIP2006]数列

题目描述 给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列&#xff0c;例如&#xff0c;当k3时&#xff0c;这个序列是&#xff1a; 1&#xff0c;3&#xff0c;4&#xff0c;9&#xff0c;10&#xff0c;12&#xff0c;13&…

LabVIEW机械臂轨迹跟踪控制

介绍了一个使用LabVIEW开发的机械臂轨迹跟踪控制系统。该系统的主要目标是实现对机械臂运动轨迹的精确控制&#xff0c;使其能够按照预定路径进行精确移动。此系统特别适用于需要高精度位置控制的场合&#xff0c;如自动化装配、精密操作等。 为了实现LabVIEW环境下的机械臂轨迹…

【大数据安全】大数据安全的挑战与对策基础设施安全

目录 一、大数据安全的挑战与对策 &#xff08;一&#xff09;数据加密技术 &#xff08;二&#xff09;大数据安全与隐私 &#xff08;三&#xff09;大数据安全保障体系 &#xff08;四&#xff09;华为大数据安全解决方案 二、基础设施安全 &#xff08;一&#xff0…

TCP/IP网络模型

大家好我是苏麟 , 今天聊聊TCP/IP四层网络模型 . 资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) 应用层 最上层的&#xff0c;也是我们能直接接触到的就是应用层&#xff08;Application Layer&#xff09;&#xff0c;我们电脑或手机使用的应用软件都…

Cloudera Manager 安装 Kafka 并简单使用

Kafka 简介 kafka 是一款分布式消息发布和订阅的系统&#xff0c;具有高性能和高吞吐率。 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者规模的网站中的所有动作流数据。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理&#…

CCF-CSP 202312-1 仓库规划(Java、C++、Python)

文章目录 仓库规划问题描述输入格式输出格式样例输入样例输出子任务 满分代码JavaCPython 仓库规划 问题描述 西西艾弗岛上共有 n n n 个仓库, 依次编号为 1 ⋯ n 1 \cdots n 1⋯n 。每个仓库均有一个 m m m 维向量的位置编码, 用来表示仓库间的物流运转关系。 具体来说,…

uni-app小程序自定义导航栏

最近在开发一个uni-app小程序&#xff0c;用到了自定义导航栏&#xff0c;在这里记录一下实现过程&#xff1a; page.json 在对应页面路由的style中设置入"navigationStyle": "custom"取消原生导航栏&#xff0c;自定义导航栏 {"path": "…

企业级大模型的护城河:RAG + 微调

围绕LLM的炒作是前所未有的&#xff0c;但这是有道理的&#xff0c;生成式 AI 有潜力改变我们所知道的社会。 在很多方面&#xff0c;LLM将使数据工程师变得更有价值——这令人兴奋&#xff01; 不过&#xff0c;向老板展示数据发现工具或文本到 SQL 生成器的炫酷演示是一回事…

flutter+go构建的即时通讯app,ChatCraft

前言 Hi&#x1f44b;all.好久不见&#xff0c;已经两个多月没有发文章了&#xff0c;这段时间一直在反思过去的一年&#xff0c;有好有坏。对博客文章这块我对自己是不满意的&#xff0c;文章的质量参差不齐&#xff0c;有时候在没有好的题材时&#xff0c;我会选择写一些泛泛…

正则表达式与文本三剑客

目录 一、正则表达式 1. 定义 2. 字符匹配 3. 重复限定符 4. 位置锚点 5. 分组和引用 6. 扩展正则表达式 二、文本三剑客 1. grep 1.1 定义 1.2 语法 1.3 选项 1.4 示例 2. sed 2.1 定义 2.2 通式 2.3 选项 2.4 脚本格式&#xff08;脚本语法&#xff09; 2.…