robot.java
 1 import java.util.Scanner;       // input műveletekhez
 2 import java.util.HashMap;       // szótár megvalósításához
 3 import java.util.Map;           // szótár adattípushoz "interfész"
 4 
 5 public class robot {
 6     public static void main(String[] args) {
 7         // SZÓTÁR létrehozása és inicializálása
 8         Map<Character, Integer> EGTAJAK = new HashMap<>();
 9         EGTAJAK.put('E',0);
10         EGTAJAK.put('D',0);
11         EGTAJAK.put('K',0);
12         EGTAJAK.put('N',0);
13         // --------------------------------------------------------
14         // 1. feladat: robotnak szánt PARANCS beolvasása
15         System.out.print("Kerem a robot parancsait: ");
16         Scanner scanner = new Scanner(System.in);
17         String PARANCS = scanner.nextLine();
18         // PARANCS alapján ÉGTÁJAK szótár bejegyzéseinek módosítása
19         for (int i = 0; i < PARANCS.length(); i++) {
20             char egtaj = PARANCS.charAt(i);
21             int ertek = EGTAJAK.get(egtaj);
22             ertek++;
23             EGTAJAK.put(egtaj, ertek);
24         }
25         // 2. feladat - Az egyes betűkből (égtájakból) hány darab van
26         // EGTAJAK szótár bejárása
27         for (Map.Entry<Character, Integer> egtaj : EGTAJAK.entrySet()) {
28             System.out.println(egtaj.getKey() + " betuk szama: " + egtaj.getValue());
29         }
30         // 3. feladat - egyszerűsített parancs
31         int ED = Math.abs(EGTAJAK.get('E') - EGTAJAK.get('D'));
32         int KN = Math.abs(EGTAJAK.get('K') - EGTAJAK.get('N'));
33         // Függőleges elmozdulás (f: É-D irány), vízszintes elmozdulás (v: K-N irány)
34         // Feltételes értékadással kap az f és v változó értéket
35         String f = EGTAJAK.get('E') > EGTAJAK.get('D') ? "E".repeat(ED) : "D".repeat(ED);
36         String v = EGTAJAK.get('K') > EGTAJAK.get('N') ? "K".repeat(KN) : "N".repeat(KN);
37         String EPARANCS = f + v;
38         System.out.println("Egy legrovidebb ut parancsszava: " + EPARANCS);
39         
40         
41         
42     }
43 }
44 
45