Java练习——常用API1
练习1

package com.lkbhua.MyApi.Test;import java.util.ArrayList;
import java.util.Scanner;public class test3 {public static void main(String[] args) {/* 键盘录入一些1-100之间的整数,并添加到集合中* 直到集合中所有的数据和超过200为止*/// 1、创建一个集合ArrayList<Integer> list = new ArrayList<>();Scanner sc = new Scanner(System.in);// 2、键盘录入数据添加到集合中while(true) {System.out.println("请输入整数数字:");String numStr = sc.nextLine();// 3、把字符串转换成数字int num = Integer.parseInt(numStr);// 先把异常数据进行过滤if (num < 1 || num > 100) {System.out.println("输入的数字不符合要求,请重新输入");continue;}// num:基本数据类型// num——> Integer// 在添加数据的时候触发了自动装箱// 即 list.add(Integer.valueOf(num));list.add(num);int sum = getSum(list);if (sum > 200) {System.out.println("数据已经超过200,请勿继续输入");break;}}// 验证一下结论for (int i = 0; i < list.size(); i++) {System.out.print(list.get(i)+" ");}System.out.println();System.out.println("当前集合中的数据为:" + list);}// 定义集合中的求和方法private static int getSum(ArrayList<Integer> list) {int sum = 0;for(int i =0 ; i < list.size(); i++){// i: 索引// list.get(i): 集合中的元素sum += list.get(i);}return sum;}}
练习2

package com.lkbhua.MyApi.Test;public class test4 {public static void main(String[] args) {/*自己实现:parseInt方法的效果,将字符串转换为整数* 要求:字符串只能是数字不能有其他的字符最少一位,最多10位0不能开头*/// 1、定义一个字符串String str = "1";// 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++) {char c = str.charAt(i);// "1" - "0" --> 1int num = c - '0';// 每一位数字放到number当中number = number * 10 + num;}System.out.println(number);// 验证是否为整数System.out.println(number+1);}}
}练习3

package com.lkbhua.MyApi.Test;public class test5 {public static void main(String[] args) {/*自己写一个方法实现toBinaryString的效果,将一个十进制转换成二进制*/System.out.println(toBinaryString(6));}public static String toBinaryString(int number){// 核心逻辑:// 不断的去除以2,得到余数,一直商到0为止// 还需要把余数倒着拼接起来// 定义一个StringBuilder的对象——用来拼接StringBuilder sb = new StringBuilder();// 利用循环while(true){if(number == 0){break;}// 切记:一定是先获取余数再除以2,很容易举个反例就知道原因了// 获取余数 %int remainder = number % 2;System.out.println(remainder);// 倒着拼接// insert(int index, String str) ;插入字符串// 每次都从头插入,插入的元素是这个余数——实现了倒着拼接sb.insert(0, remainder);// 除以2 /number /= 2;}// 返回拼接结果return sb.toString();}
}练习4

package com.lkbhua.MyApi.Test;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
import java.time.temporal.ChronoUnit;public class test6 {public static void main(String[] args) throws ParseException {/*用代码的形式计算你到现在活了多少天*/// case1:JDK7之前的方式// 规则:只要对时间进行计算或者判断,都需要先获取当前时间的毫秒值// case2:JDK8的方法LocalDate birthTime = LocalDate.of(2000,1,1);LocalDate nowTime = LocalDate.now();long days = ChronoUnit.DAYS.between(birthTime,nowTime);System.out.println("活了"+days+"天");}private static void JDK7() throws ParseException {// 出生年月日// 1、计算出生年月日的毫秒值String birthday = "2005年1月1日";// 利用SimpleDateFormat进行解析SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");// parse()方法会给我们返回一个Date对象Date date = sdf.parse(birthday);// 利用date.getTime()方法,获取出生时间的毫秒值long birthdaytime = date.getTime();// 2、获取当前时间的毫秒值long todayTime = System.currentTimeMillis();// 3、计算间隔多少天long time = todayTime - birthdaytime;long day = time / (1000 * 60 * 60 * 24);System.out.println("活了"+day+"天");}
}
练习5

package com.lkbhua.MyApi.Test;import java.time.LocalDate;
import java.util.Calendar;public class test7 {public static void main(String[] args) {/*判断任意一个年份是闰年还是平年要求:用JDK7和JDK8两种方式完成二月有29天是闰年一年有366天也是闰年*/// JDK7// 开始时间2000年1月1日 00:00:00// 结束时间2100年1月1日 23:59:59// 看看间隔是不是366天// 或者只看2月份// 开始时间:2000年2月1日 00:00:00// 结束时间:2000年3月1日 23:59:59// 看看间隔是不是29天// 但是很显然这俩中都比较麻烦// 介绍一个类:日历类// 简化1:我们可以把时间设置为2000年3月1日 00:00:00// 再把日历往前减去一天// 看看日历是28号还是29号?// 简化2:我们可以把时间设置为2000年1月1日 00:00:00// 再把日历往前减去一天// 统计是365天还是366天?// 默认是今天Calendar c = Calendar.getInstance();// 注意:月份的范围是0-11c.set(2000, 2, 1);// 减去一天c.add(Calendar.DAY_OF_MONTH, -1);// 获取结果int day = c.get(Calendar.DAY_OF_MONTH);System.out.println(day == 29 ? "闰年" : "平年");// JDK8:// 设定时间LocalDate ld = LocalDate.of(2000, 3, 1);// 减去一天ld = ld.minusDays(1);System.out.println(ld.getDayOfMonth() == 29 ? "闰年" : "平年");System.out.println("------------------------------------------------");System.out.println(ld.isLeapYear());}
}
声明:
以上均来源于B站@ITheima的教学内容!!!
本人跟着视频内容学习,整理知识引用
