java3.定义一个长度为10的数组,循环输入10个年份. 要求将数组中闰年年份放入一个新的数组中, 最后把这个新数组中的闺年年份排序后输出
时间: 2024-10-10 10:13:43 浏览: 29
在Java中,你可以按照以下步骤来实现这个功能:
1. 首先,创建一个长度为10的整型数组`int[] years = new int[10];`,用于存储用户输入的年份。
```java
int[] years = new int[10];
```
2. 使用`for`循环,让用户依次输入10个年份,并检查是否是闰年。判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
```java
boolean[] isLeapYear = new boolean[years.length];
for (int i = 0; i < years.length; i++) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第 " + (i+1) + " 个年份:");
int year = scanner.nextInt();
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
isLeapYear[i] = true;
years[i] = year; // 如果是闰年,同时保存到原数组
} else {
years[i] = -1; // 可以为非闰年设置一个默认值,如-1
}
scanner.close(); // 关闭扫描器
}
```
3. 创建一个新数组`int[] leapYears = new int[isLeapYear.length];`,只保留原数组中闰年的元素,并复制它们。
```java
int[] leapYears = Stream.of(years)
.filter(year -> isLeapYear[(int) year])
.toArray();
```
4. 对新数组`leapYears`进行排序。这里我们可以使用Java内置的Arrays.sort()方法或使用Collections.sort()方法对List进行排序,然后转换回数组。
```java
if (leapYears.length > 0) {
Arrays.sort(leapYears);
}
```
5. 输出排序后的闰年年份。
```java
System.out.println("排序后的闰年年份: ");
for (int leap : leapYears) {
if (leap != -1) { // 过滤掉非闰年的-1
System.out.print(leap + " ");
}
}
```
阅读全文