Hallo, ich habe ein mehr oder weniger großes Problem bei dem ich nicht weiterkomme. Und zwar sollen wir für eine Aufgabe eine Textdatei (Inhalt ist eine Übersetzung von allen Buchstaben und Zahlen und einigen Zeichen in Morse-Code) parsen und dann eine Funktion schreiben, die einen übergebenen Character in den entsprechenden Morse-Code übersetzt.
Der Inhalt der Text-Datei sieht folgendermaßen aus:
"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" => "..---",
... (ist nur ein Ausschnitt)
So, in der Aufgabenstellung heißt es:
"Parsen Sie diese Datei und generieren Sie eine Java Map, die jeden Buchstaben auf seinen Morse-Code abbildet: Character => String - Map<Character,String>()." ... Schreiben Sie in Ihrer Klasse eine Methode encode, die mit Hilfe dieser Abbildung einen gegebenen String in seinen Morse-Code enkodiert.
So, das mit dem Parsen funktioniert einigermaßen, jedoch gibt er mir als ersten Character nicht den Buchstaben, sondern immer nur das "=" Zeichen, wenn ich es auf der Konsole ausgeben lasse, hier mein Code bis jetzt:
So, nun sieht eine Zeile der Ausgabe so aus:
`{"=" => ".-",}`
Vorne steht immer nur das "=", hinten der Teil ist korrekt.
Vielleicht weiß ja jemand, was man hier verbessern kann und wie man am besten mit der encode-Methode dann anfangen könnte . Über Hilfe wäre ich sehr dankbar!
Gruß
Max
Der Inhalt der Text-Datei sieht folgendermaßen aus:
"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" => "..---",
... (ist nur ein Ausschnitt)
So, in der Aufgabenstellung heißt es:
"Parsen Sie diese Datei und generieren Sie eine Java Map, die jeden Buchstaben auf seinen Morse-Code abbildet: Character => String - Map<Character,String>()." ... Schreiben Sie in Ihrer Klasse eine Methode encode, die mit Hilfe dieser Abbildung einen gegebenen String in seinen Morse-Code enkodiert.
So, das mit dem Parsen funktioniert einigermaßen, jedoch gibt er mir als ersten Character nicht den Buchstaben, sondern immer nur das "=" Zeichen, wenn ich es auf der Konsole ausgeben lasse, hier mein Code bis jetzt:
Java:
public static Map<Character, String> readMappingFile(String filename) throws IOException {
Map<Character, String> map = new HashMap<Character, String>();;
BufferedReader in;
in = new BufferedReader(new FileReader(filename));
String line;
while ((line = in.readLine()) != null ){
if (line.length() == 0){
continue;
}
Character c = line.charAt(0);
String s = line.substring(2);
map.put(c, s);
}
System.out.println(map);
in.close();
return map;
}
So, nun sieht eine Zeile der Ausgabe so aus:
`{"=" => ".-",}`
Vorne steht immer nur das "=", hinten der Teil ist korrekt.
Vielleicht weiß ja jemand, was man hier verbessern kann und wie man am besten mit der encode-Methode dann anfangen könnte . Über Hilfe wäre ich sehr dankbar!
Gruß
Max