package day6;
import java.util.Scanner;
public class Ex06_CodingDecoding {
public static void main(String[] args) {
/*
다음은 알파벳과 숫자를 아래에 주어진 암호표로 암호화하는 프로그램이다.
(1)에 알맞은 코드를 넣어서 완성하시오.
a b c d e f g h i j k l m n o p q r s t u v w x y z
` ~ ! @ # $ % ^ & * ( ) - _ + = | [ ] { } ; : , . /
0 1 2 3 4 5 6 7 8 9
q w e r t y u i o p
char[] abcCode =
{ '`','~','!','@','#','$','%','^','&','*',
'(',')','-','_','+','=','|','[',']','{',
'}',';',':',',','.','/'};
// 0 1 2 3 4 5 6 7 8 9
char[] numCode = {'q','w','e','r','t','y','u','i','o','p'};
*/
String str = "abc12";
System.out.println("암호화 전 : " + str);
String encodeStr = encode(str);
System.out.println("암호화 후 : " + encodeStr);
System.out.println("복호화 전 : " + encodeStr);
String decodeStr = decode(encodeStr);
System.out.println("복호화 후 : " + decodeStr);
System.out.print(">> ");
Scanner sc = new Scanner(System.in);
String ip = sc.next();
System.out.println("암호화 전 : " + ip);
String encodeStr1 = encode(ip);
System.out.println("암호화 후 : " + encodeStr1);
System.out.println("복호화 전 : " + encodeStr1);
String decodeStr1 = decode(encodeStr1);
System.out.println("복호화 후 : " + decodeStr1);
}
static String encode(String str) {
// a b c d e f g h i j k l m n o p q r s t u v w x y z
// ` ~ ! @ # $ % ^ & * ( ) - _ + = | [ ] { } ; : , . /
char[] abcCode =
{ '`','~','!','@','#','$','%','^','&','*',
'(',')','-','_','+','=','|','[',']','{',
'}',';',':',',','.','/'};
// 0 1 2 3 4 5 6 7 8 9
char[] numCode = {'q','w','e','r','t','y','u','i','o','p'};
String result="";
for (int i = 0; i < str.length(); i++) {
int n = str.charAt(i);
if(n >= 48 && n <= 57 ) {// 숫자인경우
result += numCode[Integer.parseInt(""+str.charAt(i))];
}else {
result += abcCode[n-97];
}
}
return result;
}
static String decode(String str) {
// a b c d e f g h i j k l m n o p q r s t u v w x y z
// ` ~ ! @ # $ % ^ & * ( ) - _ + = | [ ] { } ; : , . /
char[] abcCode = // 아스키코드 : 97~
{ '`','~','!','@','#','$','%','^','&','*',
'(',')','-','_','+','=','|','[',']','{',
'}',';',':',',','.','/'};
// 0 1 2 3 4 5 6 7 8 9
char[] numCode = {'q','w','e','r','t','y','u','i','o','p'};
String result="";
for (int i = 0; i < str.length(); i++) {
for (int j = 0; j < abcCode.length; j++) {
if(str.charAt(i) == abcCode[j]) { // 문자
result += ""+ (char)(j+97);
break;
}
}
for (int j = 0; j < numCode.length; j++) {
if(str.charAt(i) == numCode[j]) {
result += ""+ (char)(j+48);
break;
}
}
}
return result;
}
}