File tree Expand file tree Collapse file tree
src/main/java/io/github/vbetsch/codecracker Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66import static java .util .Map .entry ;
77
88public class Cypher {
9- private final Map <Character , Character > dictionary = Map .ofEntries (
10- entry ('a' , '!' ),
11- entry ('b' , ')' ),
12- entry ('c' , '"' ),
13- entry ('d' , '(' ),
14- entry ('e' , '£' ),
15- entry ('f' , '*' ),
16- entry ('g' , '%' ),
17- entry ('h' , '&' ),
18- entry ('i' , '>' ),
19- entry ('j' , '<' ),
20- entry ('k' , '@' ),
21- entry ('l' , 'a' ),
22- entry ('m' , 'b' ),
23- entry ('n' , 'c' ),
24- entry ('o' , 'd' ),
25- entry ('p' , 'e' ),
26- entry ('q' , 'f' ),
27- entry ('r' , 'g' ),
28- entry ('s' , 'h' ),
29- entry ('t' , 'i' ),
30- entry ('u' , 'j' ),
31- entry ('v' , 'k' ),
32- entry ('w' , 'l' ),
33- entry ('x' , 'm' ),
34- entry ('y' , 'n' ),
35- entry ('z' , 'o' )
36- );
37-
38- private static Map <Character , Character > invertMap (Map <Character , Character > map ) {
39- Map <Character , Character > inverted = new HashMap <>();
40- for (Map .Entry <Character , Character > entry : map .entrySet ()) {
41- inverted .put (entry .getValue (), entry .getKey ());
42- }
43- return inverted ;
44- }
9+ private final TranslationDictionary dictionary = new TranslationDictionary ();
4510
4611 public char decryptLetter (char letter ) {
47- return dictionary .get (letter );
12+ return dictionary .getDecryptions (). get (letter );
4813 }
4914
5015 public char encryptChar (char character ) {
51- return invertMap ( dictionary ).get (character );
16+ return dictionary . getEncryptions ( ).get (character );
5217 }
5318}
Original file line number Diff line number Diff line change 1+ package io .github .vbetsch .codecracker ;
2+
3+ import java .util .HashMap ;
4+ import java .util .Map ;
5+
6+ import static java .util .Map .entry ;
7+
8+ public class TranslationDictionary {
9+
10+ private final Map <Character , Character > decryptions = Map .ofEntries (
11+ entry ('a' , '!' ),
12+ entry ('b' , ')' ),
13+ entry ('c' , '"' ),
14+ entry ('d' , '(' ),
15+ entry ('e' , '£' ),
16+ entry ('f' , '*' ),
17+ entry ('g' , '%' ),
18+ entry ('h' , '&' ),
19+ entry ('i' , '>' ),
20+ entry ('j' , '<' ),
21+ entry ('k' , '@' ),
22+ entry ('l' , 'a' ),
23+ entry ('m' , 'b' ),
24+ entry ('n' , 'c' ),
25+ entry ('o' , 'd' ),
26+ entry ('p' , 'e' ),
27+ entry ('q' , 'f' ),
28+ entry ('r' , 'g' ),
29+ entry ('s' , 'h' ),
30+ entry ('t' , 'i' ),
31+ entry ('u' , 'j' ),
32+ entry ('v' , 'k' ),
33+ entry ('w' , 'l' ),
34+ entry ('x' , 'm' ),
35+ entry ('y' , 'n' ),
36+ entry ('z' , 'o' )
37+ );
38+
39+ private final Map <Character , Character > encryptions = invert (decryptions );
40+
41+ public Map <Character , Character > getDecryptions () {
42+ return decryptions ;
43+ }
44+
45+ public Map <Character , Character > getEncryptions () {
46+ return encryptions ;
47+ }
48+
49+ private static Map <Character , Character > invert (Map <Character , Character > map ) {
50+ Map <Character , Character > inverted = new HashMap <>();
51+ for (Map .Entry <Character , Character > entry : map .entrySet ()) {
52+ inverted .put (entry .getValue (), entry .getKey ());
53+ }
54+ return inverted ;
55+ }
56+ }
You can’t perform that action at this time.
0 commit comments