筆試二:摩斯密碼傳遞情書

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Test4 {
	public static void move(List array2,int num) {
		int index=0;
		while(index<num) {
			array2.add(array2.get(index));
			index++;
		}
		while(num>0) {
			array2.remove(0);
			num--;
		}
	}
	
	public static void main(String[] args) throws Throwable{
		//1.根據輸入流獲取月份、日期和信息
		Scanner sc = new Scanner(System.in);
		//如何獲取控制檯多行數據
		String line1 = sc.nextLine();
		String line2 = sc.nextLine();
		//一個或多個空格分割字符串:String的split方法支持正則表達式;正則表達式\s表示匹配任何空白字符,+表示匹配一次或多次。
		String[] per=line1.split("\\s+");
		int mouth=Integer.valueOf(per[0]);
		int date=Integer.valueOf(per[1]);
        
		//2.初始化字母數組
		String[] A9 = new String[]{"A","B","C","D","E","F","G","H","I"};
		String[] J9 = new String[]{"J","K","L","M","N","O","P","Q","R"};
		String[] S9 = new String[]{"S","T","U","V","W","X","Y","Z","*"};
		
		List<String[]> array=new LinkedList();
		array.add(A9);
		array.add(J9);
		array.add(S9);
		
		//3.先根據月份轉移
		int data=mouth-1;
		while(data>2) {
			data=data-3;
		}
		move(array,data);
		
		//4.根據月份轉移後的三組字母
		List<String> l1=new LinkedList();
		List<String> l2=new LinkedList();
		List<String> l3=new LinkedList();
		for(String str:array.get(0)) {
			l1.add(str);
		}
		for(String str:array.get(1)) {
			l2.add(str);
		}
		for(String str:array.get(2)) {
			l3.add(str);
		}
		
		//5.根據日期轉移
		int data2=date-1;
		while(data2>8) {
			data2=data2-9;
		}
		move(l1,data2);
		move(l2,data2);
		move(l3,data2);

		//6.找字母
		char[] str= line2.toCharArray();
		String[] aa=new String[str.length];
		for(int i=0;i<str.length;i++) {
			aa[i]=String.valueOf(str[i]);
		}
		
		String fa="";
		for (int i = 0; i < aa.length; i++) {
        	for (int j = 0; j < 9; j++) {
        		if( aa[i].equals(l1.get(j)))
        			fa+="1"+(j+1)+" ";
        		if(String.valueOf( aa[i]).equals(l2.get(j)))
        			fa+="2"+(j+1)+" ";
        		if(String.valueOf( aa[i]).equals(l3.get(j)))
        			fa+="3"+(j+1)+" ";
        	}
		}

		System.out.println(fa);
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章