Hallo Crypto,
wo man sich anschauen kann wie es aussehen muss.
Daniel hat Dir ja bereits den besseren Lösungsweg aufgezeigt und auch die drei nötigen Schritte genannt. Wenn man sich daran hält, sollte sowas in der Art entstehen:
- java.util.Scanner verwenden um die Eingabe in einzelne Morse-Zeichen zu zerlegen und zeichenweise abzuarbeiten.
Wie Du hier nachlesen kannst, zerlegst Du den entgegengenommenen String "eingegebenerText":
StringTokenizer tokenizer = new StringTokenizer( eingegebenerText );
while ( tokenizer.hasMoreTokens() )
System.out.println( tokenizer.nextToken() );
Trennzeichen sind - wie dem Hinweiskasten zu entnehmen ist - "Leerzeichen, Tabulator, Zeilenende und Seitenvorschub" wenn nichts angegeben ist. Als Ergebnis liefert Dir die while-Schleife jedes einzelne Morsezeichen und gibt es wieder aus.
- In einer java.util.HashMap die Zuordung von Morse zu normalen Zeichen speichern.
Den Link hatte ich Dir ja schon genannt, wo Du erklärt bekommst, wie Du eine solche Tabelle erstellst, sie mit Daten füllst und auch wieder abrufen kannst.
HashMap<String,String> Morsecode = new HashMap<String,String>();
Morsecode.put(".-", "a");
Morsecode.put("-...", "b");
Morsecode.put("-.-.", "c");
Morsecode.put("-..", "d");
Morsecode.put(".", "e");
...
- Zeichen übersetzen und den neuen String mittels java.lang.StringBuilder zusammenbauen oder direkt in einen Writer ausgeben.
Die beiden oben gemachten Teilschritte vereinst Du nun. Dazu nimmst Du die while-Schleife, in der Du jedes einzelne "Zeichen" ermittelst und die Codetabelle. Mit der Methode get() der HashMap suchst Du nun die Zeichen:
Morsecode.get( tokenizer.nextToken() )
und gibst es wieder innerhalb der Schleife wieder aus:
while ( tokenizer.hasMoreTokens() )
System.out.println( Morsecode.get( tokenizer.nextToken() ) );
Im Ergebnis erhälst Du nun die "Übersetzung" des Codes.
Mit freundlichem Gruß
Micha
LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript || JS Tetris :: für zwischendurch