ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

今日Java小练习

2026/8/22 16:23:40 拓冰建站 浏览量
今日Java小练习

题目描述一

计算保存日期的那一年的所有天数

解题思路

  1. 分别截取日期的年月日保存为int型
  2. 定义数组保存1到12月的天数(或使用LocalDate的getDayOfMonth方法直接计算)
  3. 判断如果是闰年二月天数加1
  4. 累加当前月份前所有月份的天数和
  5. 用之前累加的天数加上当前月的天数
import java.time.LocalDate;
public class 计算日期 {public static void main(String[] args) {String dateStr="2024-04-28";//定义的日期//截取年转换为int型int year=Integer.parseInt(dateStr.substring(0,4));//截取月转换为int型int month=Integer.parseInt(dateStr.substring(5,7));//截取日转换为int型int days=Integer.parseInt(dateStr.substring(8));//方式1System.out.println(LocalDate.of(year, month, days).getDayOfMonth());//方式2//定义数组,保存1月到12月每个月的天数int[] arr= {31,28,31,30,31,30,31,31,30,31,30,31};//判断,如果是闰年二月的天数加1if(year%4==0&&year%100!=0) {arr[1]++;	}//累加当前月份前所有月份的天数和int dayofyear=0;for(int i=0;i<=month-2;i++) {dayofyear += arr[i];}//之前累加的天数加上当前月的天数dayofyear += days;System.out.println(dayofyear);}
}

 题目描述二

在1-33之间输入7个不重复的数字

集体思路

  1. 使用Scanner类系统输入
  2. 判断输入的数字是否在范围内
  3. 判断是否有重复,否则重新输入,跳出循环
  4. 将输入的所有数字存入数组
import java.util.Arrays;
import java.util.Scanner;
public class E22 {public static void main(String[] args) {try(Scanner input=new Scanner(System.in)){//定义数组,保存7个数字int[] numbers=new int[7];outer:for(int i=0;i<numbers.length;i++){System.out.printf("请输入第%d个数字:",i+1);int temp=input.nextInt();//检查是否在1-33范围内if(temp<1||temp>33) {System.err.println("请输入1-33之间的数字");i--;continue;}//检查是否存在重复数字for(int k=0;k<i;k++) {if(numbers[k]==temp) {System.out.println("请不要输入重复的数字!");i--;continue outer;//外层循环结束}}numbers[i]=temp;System.out.println(Arrays.toString(numbers));}}}
}

题目描述三

随机产生7个1-33之间不重复的数字

import java.util.Arrays;
public class E23 {public static void main(String[] args) {//产生1-33间不重复随机7个数int[] numbers = new int[7];outer:for(int i=0;i<numbers.length;i++) {//产生1个随机数存入临时变量int temp=(int) (Math.random()*33+1);//检查随机数是否重复if(numbers[i]==temp) {i--;continue outer;}numbers[i]=temp;}	System.out.println(Arrays.toString(numbers));}
}

题目描述四

计算两个数组中数字的重复个数

public class E24 {public static void main(String[] args) {int[] sysnumbers= {12,13,16,34,23,21,22};int[] usernumbers= {12,15,16,34,19,87,78};int counter=0;for(int i=0;i<sysnumbers.length;i++) {for(int k=0;k<usernumbers.length;k++) {if(sysnumbers[i]==usernumbers[k]) {counter++;break;}}		}System.out.println(counter);	}
}