poj 2141
2007/10/15
java
poj
2141 -- Message Decowding
「a simple substitution cipher. 」です。
おもいつくままにコーディング。isUpperCaseできいているところがなんかいやだけど。
この問題はショートコーダー本ですごいコードが載っていますね。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String key = scanner.nextLine();
String s = scanner.nextLine();
dec(key, s);
}
static void dec(final String k, String s) {
class Dec {
char dec(final char c) {
boolean isUpp = Character.isUpperCase(c);
char c2 = Character.toLowerCase(c);
if (!('a' <= c2 && c2 <= 'z'))
return c;
int idx = (int) ((int) c2 - (int) 'a');
char d = k.charAt(idx);
if (isUpp)
return Character.toUpperCase(d);
return d;
}
}
Dec dec = new Dec();
char[] cs2 = s.toCharArray();
for (int i = 0; i < cs2.length; i++) {
System.out.print(dec.dec(cs2[i]));
}
}
}
: