Java常用API——五道综合练习

news2024/10/6 12:32:54

练习一:

键盘录入一些1~100的整数,并添加到集合中
直到集合中所有数据的和超过200为止
代码:
public class Test1 {
    public static void main(String[] args) {
        /*
        键盘录入一些1~100的整数,并添加到集合中
        直到集合中所有数据的和 超过200为止
         */

        //创建集合
        ArrayList<Integer> list = new ArrayList<>();
        //键盘录入并存入集合
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入一个1~100内的整数:");
            String numStr = sc.nextLine();
            //将字符串转成整数
            int num = Integer.parseInt(numStr);
            if(num < 1 || num > 100) {
                System.out.println("输入的整数不在范围1~100内,请重新输入:");
            }
            list.add(num);
            int sum = getListSum(list);
            if(sum > 200) {
                System.out.println("集合中所有的数据和超过200,录入结束");
                break;
            }
        }
    }
    //定义方法求集合中数据的和
    public static int getListSum(ArrayList<Integer> list) {
        int sum = 0;
        for (int i = 0; i < list.size(); i++) {
              int num = list.get(i);
              sum = sum + num;
        }

        return sum;
    }
}
运行结果:

练习二:

实现parseInt方法的效果,将字符串形似的数据转成整数
    要求:
        字符串中只能含数字
        最少一位,最多十位
        0不能开头
代码:
public class Test2 {
    public static void main(String[] args) {
        /*
        实现parseInt方法的效果,将字符串形似的数据转成整数
            要求:
                字符串中只能含数字
                最少一位,最多十位
                0不能开头
         */

        //定义一个字符串
        String str = "135792468";

        //校验字符串
        if(!str.matches("[1-9]\\d{0,9}")) {
            System.out.println("输入的数据格式有误");
        } else {
            int number = 0;
            for (int i = 0; i < str.length(); i++) {

                char c = str.charAt(i);
                int num = c - 48;
                number = number * 10 + num;
            }
            System.out.println(number);
            System.out.println(number + 1);
        }
    }
}
运算结果:

练习三:

键盘录入一个整数
将一个十进制的整数转换成一个二进制的字符串形式
代码:
public class Test3 {
    public static void main(String[] args) {
        /*
        键盘录入一个整数
        将一个十进制的整数转换成一个二进制的字符串形式
         */

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        String numStr = sc.nextLine();
        //检验字符串是否为整数
        if(!numStr.matches("[1-9]\\d{0,}")) {
            System.out.println("输入的数据格式不符合要求,请重新输入:");
        } else {
            int number = Integer.parseInt(numStr);
            String binaryString = toBinaryString(number);
            System.out.println(binaryString);
            System.out.println(Integer.toBinaryString(number));
        }
    }

    public static String toBinaryString(int number) {
        StringBuilder sb = new StringBuilder();
        while(true) {
            if(number == 0) {
                break;
            }
            int remainder = number % 2;
            sb.append(remainder);
            number = number / 2;
        }
        sb.reverse();
        String result = sb.toString();
        return result;
    }
}
运算结果:

练习四:

输入生日“yyyy年MM月dd日”,代码就可以给出活了多少天,使用JDK7和JDK8两种方式完成
代码:
public class Test4 {
    public static void main(String[] args) throws ParseException {
        //输入生日“yyyy年MM月dd日”,代码就可以给出活了多少天,使用JDK7和JDK8两种方式完成

        //JDK7
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入出生日期:");
        String birthdayStr = sc.nextLine();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
        Date date = sdf.parse(birthdayStr);
        long birthdayTime = date.getTime();
        long todayTime = System.currentTimeMillis();
        long day = (todayTime - birthdayTime) / 1000 / 60 / 60 / 24;
        System.out.println(day);

        //JDK8
        LocalDate ld1 = LocalDate.of(2003,9,1);
        LocalDate ld2 = LocalDate.now();

        long result = ChronoUnit.DAYS.between(ld1, ld2);
        System.out.println(result);

    }
}
运算结果:

练习五:

输入一个年份,判断这个年份是闰年还是平年
    要求:用JDK7和JDK8两种方式判断
    提示:二月有29天是闰年,一年有366天是闰年
代码:
public class Test5 {
    public static void main(String[] args) {
        /*
        输入一个年份,判断这个年份是闰年还是平年
            要求:用JDK7和JDK8两种方式判断
            提示:二月有29天是闰年,一年有366天是闰年
         */

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要判断的年份:");
        int year = 0;
        while (true) {
            String yearStr = sc.nextLine();
            if(!yearStr.matches("[1-9]\\d{0,3}")) {
                System.out.println("输入的年份不符合要求,请重新输入:");
                continue;
            }
            year = Integer.parseInt(yearStr);
            break;
        }

        //思路:将那一年的3月1号减一天再通过日期是28还是29判断平年闰年

        //JDK7
        Calendar c = Calendar.getInstance();
        c.set(year,2,1);//Calendar中月份范围是0~11
        c.add(Calendar.DAY_OF_MONTH,-1);
        int day1 = c.get(Calendar.DAY_OF_MONTH);
        if(day1 == 28) {
            System.out.println(year + "年是平年");
        } else {
            System.out.println(year + "年是闰年");
        }

        //JDK8
        LocalDate ld1 = LocalDate.of(year,3,1);
        LocalDate ld2 = ld1.minusDays(1L);
        int day2 = ld2.getDayOfMonth();
        if(day2 == 28) {
            System.out.println(year + "年是平年");
        } else {
            System.out.println(year + "年是闰年");
        }

        //JDK8 自带的判断闰年的方法
        //闰年:true
        //平年:false
        boolean result = ld1.isLeapYear();
        System.out.println(result);
    }
}
运算结果:

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

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

相关文章

比 Nest.js 更优雅的 TS 控制反转策略 - 依赖查找

一、Cabloy5.0 内测预告 Cabloy5.0 采用 TS 对整个全栈框架进行了脱胎换骨般的大重构&#xff0c;并且提供了更加优雅的 ts 控制反转策略&#xff0c;让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比&#xff1a; 后端前端旧版js、egg2.0、mysqljs、vue2、framework7新版ts…

ISTQB选择国内版,还是国际版呢

1, ISTQB简介 ISTQB&#xff08;International Software Testing Qualifications Board&#xff09;是一个国际软件测试资格认证机构&#xff0c;旨在提供一个统一的软件测试认证标准。ISTQB成立于2002年&#xff0c;是非盈利性的组织&#xff0c;由世界各地的国家或地区软件测…

交叉注意力融合时域、频域特征的FFT + CNN -Transformer-CrossAttention电能质量扰动识别模型

往期精彩内容&#xff1a; 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…

OpenAI又更新,自定义AI模型上线

OpenAI 4日表示&#xff0c;他们正在为fine-tuning API引入新的改进功能&#xff0c;以帮助开发者更好地控制fine-tuning的过程&#xff0c;并且宣布了利用OpenAI构建自定义模型的新途径。 为了减少延迟、提高准确性和降低成本&#xff0c;开发者可以使用各种技术来提高模型性…

特别详细的Spring Cloud 系列教程2:微服务网关gateway的启动

继上一篇&#xff1a;特别详细的Spring Cloud 系列教程1&#xff1a;服务注册中心Eureka的启动 在比较多的教程和书籍里&#xff0c;spring cloud的微服务网关用的Zuul。然而&#xff0c;zuul已经不被官方提倡&#xff0c;现在提倡用的是spring cloud gateway。因为gateway的整…

安达发|五金加工业生产计划与排产常见问题及解决方法

五金加工业生产计划与排产是确保制造流程顺畅、高效的关键。在实际操作中&#xff0c;企业可能会遇到多种问题&#xff0c;影响生产效率和产品质量。以下是一些常见问题及其解决方法&#xff1a; 1. 需求预测不准确&#xff1a; - 建立更为精确的需求预测模型&#xff0c;结…

uni-app项目创建方式

原生小程序与uni-app的区别 创建uni-app的方式 1.通过HBuilderX创建 2.通过命令行创建 vue3ts版&#xff1a;npx degit dcloudio/uni-preset-vue#vite-ts 项目名称 用vscode开发uni-app项目 安装命令&#xff1a;npm i -D types/wechat-miniprogram uni-helper/uni-app-typ…

软件设计师-基础知识科目-数据结构3

三、 数据结构&#xff1a; 时间复杂度&#xff1a; 背复杂度对应的代码。Tips&#xff1a;时间复杂度估算看最内层循环&#xff0c;如若没有循环和递归则为O&#xff08;1&#xff09;。 空间复杂度&#xff1a; 需要单独空间存储数据时使用。考点&#xff1a;非递归的空间…

希亦、石头、添可洗地机哪个更好用?资深家电测评师多角度横评

作为一个测评了许多洗地机的家电测评师&#xff0c;有很多人问我&#xff0c;他想入手一款适合自己的家用洗地机&#xff0c;不知道怎么购买到自己合适的&#xff0c;结果自己跑去搜索后发现为什么有的洗地机几百块钱就能入手&#xff0c;而有的又得几千元&#xff0c;买贵的怕…

CSS实现热门创作者排行榜(毛玻璃效果)

CSS实现热门创作者排行榜&#xff08;毛玻璃效果&#xff09; 效果展示 CSS 知识点 CSS 基础知识回顾filter 属性运用回顾 整体页面布局实现 <div class"container"><h3>Popular Creator Rank List</h3><!-- 用户列表容器 --><div cl…

NetSuite Saved Search-当前库存快照查询报表(二)

之前第一篇文章我们说明了&#xff0c;如何利用Saved Search来制作一个能够显示批次物料与非批次物料的Lot信息以及On Hand在手数量的“当前库存快照查询报表”&#xff0c;但是当用户提出“我们能否再加上批次物料的效期”需求时&#xff0c;我们原有的Saved Search并不能达到…

k8s知识

k8s是用于容器编排和管理的&#xff0c;docker或者ctr是k8s的运行时&#xff0c;k8s通过容器运行时来启动容器&#xff0c;容器启动需要镜像&#xff0c;镜像可以用docker构建&#xff0c;dockerfile就是用于自定义如何构建镜像&#xff0c;所以上面那套流水线就是先用dockerfi…

苍穹外卖Day10——总结10

前期文章 文章标题地址苍穹外卖Day01——总结1https://lushimeng.blog.csdn.net/article/details/135466359苍穹外卖Day02——总结2https://lushimeng.blog.csdn.net/article/details/135484126苍穹外卖Day03——总结3https://blog.csdn.net/qq_43751200/article/details/1363…

突破编程_前端_SVG(基础元素介绍)

1 rect 矩形 在 SVG 中&#xff0c;<rect> 元素用于创建圆形。 &#xff08;1&#xff09;基本语法 <rectx"x坐标"y"y坐标"width"宽度"height"高度"rx"可选&#xff1a;圆角x半径"ry"可选&#xff1a;圆角…

.net框架和c#程序设计第二次测试

一、实验内容 1、设计一个用户登录页面webform1.aspx&#xff0c;效果如下图所示&#xff1a; 2、点击webform1.aspx中“还未注册”连接进入register.aspx&#xff0c;注册页面效果如下图所示&#xff1a;点击用户注册信息到usershow.aspx页面&#xff0c;并显示注册的用户信息…

蓝牙学习十(扫描)

一、简介 从之前的文章中我们知道&#xff0c;蓝牙GAP层定义了四种角色&#xff0c;广播者&#xff08;Broadcaster&#xff09;、观察者&#xff08;Observer&#xff09;、外围设备&#xff08;Peripheral&#xff09;、中央设备&#xff08;Central&#xff09;。 之前的学习…

什么是LPO?

近年来&#xff0c;光通信产业的发展势头很猛。 在5G、宽带中国、东数西算等国家战略的持续刺激下&#xff0c;国内光通信技术取得了巨大突破&#xff0c;光基础设施也有了质的飞跃。 特别是今年&#xff0c;AIGC大模型爆火&#xff0c;智算和超算崛起&#xff0c;更是带动了…

VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/

Day 34:贪心 LeedCode 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005. K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后&#xff0c;返回数组 可…

rac数据库默认网关不通导致集群异常

集群CSSD进程reconfiguration完成&#xff0c;显示2个节点都在线。但ora.net1.network服务启动失败&#xff0c;且有依赖关系的资源随后启动失败并且已经达到上限。 查看两个节点的网络信息&#xff0c;发现两个节点的默认网关是不一致的。 修改故障节点网关 在RAC中&#xff0…