案例一
需求一:键盘录入1-100之间的整数,并添加到集合中。 直到集合中所有数据和超过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);
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;
}
第七步:判断是否已经满足200了
// 对sum进行判断
if(sum > 200){
System.out.println("集合中的所有数据和已经满足要求了");
break;
}
我们来运行看一下把:
完整代码:
// 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++) {
int num = list.get(i);
sum += num;
}
return sum;
}
案例二
需求:自己实现parselnt方法的效果,将字符串形式的数据转成整数。要求:字符串中只能是数字不能有其他字符。最少一位,最多10位。0不能开头
第一步:定义一个字符串
// 1.定义一个字符串
String str = "123456789";
第二步:对字符串进行校验
// 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);
我们来运行看一下吧:
完整代码:
// 1.定义一个字符串
String str = "123456789";
// 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);
}
案例三
需求:请用代码实现你生活了多少天,请用JDK7和JDK8完成
- JDK7
第一步:定义你的出生年月日
String birthbay = "2000年1月1日";
第二步:计算出生年月日的毫秒值
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date date = sdf.parse(birthbay);
long birthbayTime = date.getTime();
第三步:获取当前的时间毫秒值
// 2.获取当前时间的毫秒值
long todayTime = System.currentTimeMillis();
第四步:计算出间隔时间
// 3.计算间隔的天数
long time = todayTime- birthbayTime;
System.out.println(time / 1000 / 60 / 60 / 24);
- JDK8
第一步:定义你的出生年月日
LocalDate ld1 = LocalDate.of(2000, 1,1);
第二步:获取当前的时间毫秒值
LocalDate ld2 = LocalDate.now();
第三步:计算出间隔时间
long days = ChronoUnit.DAYS.between(ld1,ld2);
System.out.println(days);
我们来运行看一下吧:
完整代码:
// JDK7
// 1计算出生年月日的毫秒值
String birthbay = "2000年1月1日";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date date = sdf.parse(birthbay);
long birthbayTime = date.getTime();
// 2.获取当前时间的毫秒值
long todayTime = System.currentTimeMillis();
// 3.计算间隔的天数
long time = todayTime- birthbayTime;
System.out.println(time / 1000 / 60 / 60 / 24);
// JDK8
LocalDate ld1 = LocalDate.of(2000, 1,1);
LocalDate ld2 = LocalDate.now();
long days = ChronoUnit.DAYS.between(ld1,ld2);
System.out.println(days);
案例四
需求:判断任意的一个年份是闺年还是平年。要求:用IDK7和IDK8两种方式判断 提示:2月有29天是闰年
- JDK7
第一步:定义一个年月日
//假设把时间设置为2000年3月1日
Calendar c = Calendar.getInstance();
c.set(2000,2,1);
第二步:把日历往前减一天
//再把日历往前减一天
c.add(Calendar.DAY_OF_MONTH,-1);
第三步:看当前的时间是28号还是29号?
//看当前的时间是28号还是29号?
int day1 = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day1);
- JDK8
第一步:定义一个年月日
//假设把时间设置为2000年3月1日
LocalDate ld3 = LocalDate.of(2000,3,1);
第二步:把日历往前减一天
//再把日历往前减一天
LocalDate ld4 = ld3.minusDays(1);
第三步:获取这一天是一个月中的几号
//获取这一天是一个月中的几号
int day2 = ld4.getDayOfMonth();
System.out.println(day2);
我们来运行看一下:
是不是都有29号呀,29天那就证明是闰年。
完整代码:
// JDK7
// 月份的范围:0-11
//假设把时间设置为2000年3月1日
Calendar c = Calendar.getInstance();
c.set(2000,2,1);
//再把日历往前减一天
c.add(Calendar.DAY_OF_MONTH,-1);
//看当前的时间是28号还是29号?
int day1 = c.get(Calendar.DAY_OF_MONTH);
System.out.println(day1);
// JDK8
// 月份的范围:1-12
//假设把时间设置为2000年3月1日
LocalDate ld3 = LocalDate.of(2000,3,1);
//再把日历往前减一天
LocalDate ld4 = ld3.minusDays(1);
//获取这一天是一个月中的几号
int day2 = ld4.getDayOfMonth();
System.out.println(day2);
其实呀,JDK8还有一个方法可以直接快速的判断是不是闰年的方法:isLeapYear()我们来看一下:
//true:闻年 false: 平年
System.out.println(ld3.isLeapYear());
是不是直接返回一个true啦,这就是JDK8的优势。
好啦,关于一些API的案例就做到这里,有什么不懂的可以在评论区互相探讨哟,我们下期不见不散!!!
==最后非常感谢您的阅读,也希望能得到您的反馈 ==