大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很 快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是 第4个字母'D',代表星期四;第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、 以及大写字母A到N表示);后面两字符串第1对相同的英文字母's'出现在第4个位置(从0开始计数)上,代表第4分钟。现给定两对字符串, 请帮助福尔摩斯解码得到约会的时间。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
String[] str = new String[4];
Scanner sc = new Scanner(System.in);
int i = 0;
while(sc.hasNextLine()){
str[i] = sc.nextLine();
i++;
}
outResult(str);
}
public static void outResult(String[] str){
String result = "";
int count = 1;
char[] first = str[0].toCharArray();
char [] next = str[1].toCharArray();
char[] scend = str[2].toCharArray();
char[] third = str[3].toCharArray();
for(int j=0;j<first.length;j++){
if(first[j]==next[j]&&first[j]>='A'&&first[j]<='Z'&&count==1){
result+=(getWeek(first[j])+" ");
count++;
continue;
}
if(first[j]==next[j]&&count>1){
result+=getDay(first[j]);
break;
}
}
for(int j=0;j<scend.length;j++){
if(third[j]==scend[j]&&third[j]>='a'&&third[j]<='z'){
if(j<9){
result+=(":0"+(j));
}else{
result+=(":"+(j));
}
break;
}
}
System.out.print(result);
}
public static String getWeek(char day){
String result = "";
switch(day){
case 'A' : result = "MON"; break;
case 'B' : result = "TUE"; break;
case 'C' : result = "WED"; break;
case 'D' : result = "THU"; break;
case 'E' : result = "FRI"; break;
case 'F' : result = "SAT"; break;
case 'G' : result = "SUN"; break;
}
return result;
}
public static String getDay(char day){
String result = "";
switch(day){
case '0' : result = "00"; break;
case '1' : result = "01"; break;
case '2' : result = "02"; break;
case '3' : result = "03"; break;
case '4' : result = "04"; break;
case '5' : result = "05"; break;
case '6' : result = "06"; break;
case '7' : result = "07"; break;
case '8' : result = "08"; break;
case '9' : result = "09"; break;
case 'A' : result = "10"; break;
case 'B' : result = "11"; break;
case 'C' : result = "12"; break;
case 'D' : result = "13"; break;
case 'E' : result = "14"; break;
case 'F' : result = "15"; break;
case 'G' : result = "16"; break;
case 'H' : result = "17"; break;
case 'I' : result = "18"; break;
case 'J' : result = "19"; break;
case 'K' : result = "20"; break;
case 'L' : result = "21"; break;
case 'M' : result = "22"; break;
case 'N' : result = "23"; break;
}
return result;
}
}