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

Java之包装类的算法小题的练习

算法小题

练习一:

需求:

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

代码示例:

public class Test1 {public static void main(String[] args) {/*键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。*///1.创建一个集合用来添加整数ArrayList<Integer> list = new ArrayList<>();//2.键盘录入数据添加到集合中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;}}
​
}
​
​private static int getSum(ArrayList<Integer> list) {int sum = 0;for (int i = 0; i < list.size(); i++) {//i :索引//list.get(i);int num = list.get(i);sum = sum + num;//+=}return sum;}
}

练习二:

需求:

自己实现parseInt方法的效果,将字符串形式的数据转成整数。要求:字符串中只能是数字不能有其他字符最少一位,最多10位 0不能开头

代码示例:

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

练习三:

需求:

package com.itheima.a04test;
​
public class Test3 {public static void main(String[] args) {/*
​定义一个方法自己实现toBinaryString方法的效果,将一个十进制整数转成字符串表示的二进制
​*/}
​
​public static String tobinarystring(int number) {//6//核心逻辑://不断的去除以2,得到余数,一直到商为日就结束。//还需要把余数倒着拼接起来
​//定义一个StringBuilder用来拼接余数StringBuilder sb = new StringBuilder();//利用循环不断的除以2获取余数while (true) {if (number == 0) {break;}//获取余数 %int remaindar = number % 2;//倒着拼接sb.insert(0, remaindar);//除以2 /number = number / 2;}return sb.toString();}
}

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

代码示例:

练习四:

需求:

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

代码示例:

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

练习五:

需求:

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

代码示例:

public class Test5 {public static void main(String[] args) {/*判断任意的一个年份是闰年还是平年要求:用JDK7和JDK8两种方式判断提示:二月有29天是闰年一年有366天是闰年*/
​//jdk7//我们可以把时间设置为2000年3月1日Calendar c = Calendar.getInstance();c.set(2000, 2, 1);//月份的范围:0~11//再把日历往前减一天c.add(Calendar.DAY_OF_MONTH, -1);//看当前的时间是28号还是29号?int day = c.get(Calendar.DAY_OF_MONTH);System.out.println(day);
​
​//jdk8//月份的范围:1~12//设定时间为2000年的3月1日LocalDate ld = LocalDate.of(2001, 3, 1);//把时间往前减一天LocalDate ld2 = ld.minusDays(1);//获取这一天是一个月中的几号int day2 = ld2.getDayOfMonth();System.out.println(day2);
​//true:闰年//false:平年System.out.println(ld.isLeapYear());}
}

1.2 动图演示

1.3 代码示例

public class A01_BubbleDemo {public static void main(String[] args) {/*冒泡排序:核心思想:1,相邻的元素两两比较,大的放右边,小的放左边。2,第一轮比较完毕之后,最大值就已经确定,第二轮可以少循环一次,后面以此类推。3,如果数组中有n个数据,总共我们只要执行n-1轮的代码就可以。*/
​
​//1.定义数组int[] arr = {2, 4, 5, 3, 1};
​//2.利用冒泡排序将数组中的数据变成 1 2 3 4 5
​//外循环:表示我要执行多少轮。 如果有n个数据,那么执行n - 1 轮for (int i = 0; i < arr.length - 1; i++) {//内循环:每一轮中我如何比较数据并找到当前的最大值//-1:为了防止索引越界//-i:提高效率,每一轮执行的次数应该比上一轮少一次。for (int j = 0; j < arr.length - 1 - i; j++) {//i 依次表示数组中的每一个索引:0 1 2 3 4if(arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}
​printArr(arr);
​
​
​
​}
​private static void printArr(int[] arr) {//3.遍历数组for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}System.out.println();}
}

http://www.lryc.cn/news/163036.html

相关文章:

  • 干涉阵相关知识
  • 如何使用Python进行可视化/音视频处理?
  • NIFI实现数据库数据增量同步
  • 【C#实战】控制台游戏 勇士斗恶龙(3)——营救公主以及结束界面
  • RBTree模拟实现
  • AUTOSAR规范与ECU软件开发(实践篇)10.4、AP和CP
  • css 命名规则
  • 正中优配:旅游餐饮板块走高,曲江文旅涨停,西安旅游等拉升
  • 世界青岛中国海洋大学金秋悦读《乡村振兴战略下传统村落文化旅游设计》2023新学年许少辉八一新书
  • 15 | Spark SQL 的 SQL API 操作
  • 为什么工作流中围绕XML做EDI报文数据解析/生成?
  • C++的运算符重载介绍
  • C++vector的使用
  • angular测试API
  • mfc 浮动窗口
  • 【C++漂流记】函数的高级应用——函数默认参数、占位参数、重载
  • Java——》synchronized的原理
  • CPU主频
  • PHP8中查询数组中指定元素-PHP8知识详解
  • 在Git中将本地分支推送到远程仓库
  • 【数据仓库基础(四)】数据仓库需求:基本需求和数据需求
  • C++类模板是一种通用的编程工具,可以创建可以适用于多种数据类型的类
  • Vite和Webpack如何使用CDN包
  • TOWE雷达光敏感应开关,让生活更智能、更安全
  • git:亲测体验rebase与merge
  • 深度神经网络之BiseNet
  • Ubantu终端常用命令、快捷键和基本操作
  • 9.5 校招 内推 面经
  • 计算机网络中的应用层和传输层(http/tcp)
  • 基于antd+vue2来实现一个简单的绘画流程图功能