题目描述
小蓝要处理非常多的数据, 其中有一些数据是日期。
在小蓝处理的日期中有两种常用的形式:英文形式和数字形式。
英文形式采用每个月的英文的前三个字母作为月份标识,后面跟两位数字表示日期,月份标识第一个字母大写,后两个字母小写, 日期小于 1010 时要补前导 00。11 月到 1212 月英文的前三个字母分别是 Jan
、Feb
、Mar
、Apr
、May
、Jun
、Jul
、Aug
、Sep
、Oct
、Nov
、Dec
。
数字形式直接用两个整数表达,中间用一个空格分隔,两个整数都不写前 导 0
。其中月份用 11 至 1212 分别表示 11 月到 1212 月。
输入一个日期的英文形式, 请输出它的数字形式。
输入格式
输入一个日期的英文形式。
输出格式
输出一行包含两个整数,分别表示日期的月和日。
输入输出样例
输入
Feb08
输出
2 8
输入
Oct18
输出
10 18
说明/提示
蓝桥杯 2020 第三轮省赛 AB 组 F 题。
字符串相关知识
String字符串和int、double、float 的相互转换
Integer.parseInt(String s)
Double.parseDouble(String s)
Float.parseFloat(String s)
substring() 方法是按字符截取,而不是按字节截取
substring(int beginIndex)
substring(int beginIndex,int endIndex)
ps:包头不包尾
字符串的比较
str1.equals(str2)
代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] arg) {
String[] arr = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String str1 = str.substring(0, 3);
int day = Integer.parseInt(str.substring(3));
int[] month = new int[12];
for (int i = 0; i < month.length; i++) {
month[i]=i+1;
}
for (int i = 0; i < arr.length; i++) {
if(str1.equals(arr[i])){
System.out.print(month[i]+" "+day);
break;
}
}
}
}
标签:---,Java,String,int,日期,month,蓝桥,substring,英文
From: https://blog.csdn.net/2302_81099651/article/details/143697108