小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808,有的人只写 9808。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月 格式。对于那些只写了年份后两位的信息,我们默认小于 22 都是 20 开头的,其他都是 19 开头的。
输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。
在一行中按标准格式 年年年年-月月 将输入的信息整理输出。
9808
1998-08
0510
2005-10
196711
1967-11
问题分解:
暂无
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取输入的年月
String input = scanner.next();
// 调用函数处理并输出结果
System.out.println(standardizeBirthMonth(input));
}
private static String standardizeBirthMonth(String input) {
String year, month;
if (input.length() == 6) {
// 如果输入为6位数,直接提取年和月
year = input.substring(0, 4);
month = input.substring(4, 6);
} else {
// 如果输入为4位数,根据年份前两位判断世纪
int yearPrefix = Integer.parseInt(input.substring(0, 2));
year = (yearPrefix < 22 ? "20" : "19") + input.substring(0, 2);
month = input.substring(2, 4);
}
return year + "-" + month;
}
}