Java for, string, char...

Varolium

Cadet 3rd Year
Registriert
Feb. 2006
Beiträge
56
Hallo Forum

ich stehe vor einem problem.

ich muss aus einem eingegebenen Text, z.b.

String text = "Hallo"

Morsecode machen. Dazu muss ich dann

char a = text.charAt(0);
char b = text.charAt(1);
.
.
.

usw. haben. Jedes Zeichen hat einen ASCII Code. Das heißt die Variable a ist zwar 'H', aber auch 72.

Der Morsecode für H wäre '....'

Vorgegeben ist folgende for-Schleife:

String[] m;

m = new String[128]; // bedeutet, ASCII Zeichen 0-127

for (int i = 0; i < m.length; i++) m=""; // Alle Array Elemente als leeren String initialisieren

// Jetzt kommen alle Buchstaben mit Morsecodes:
m['A'] = '.-'; //ASCII 65
m['B'] = '-...'; //ASCII 66

usw.

Wie schaffe ich es, aus der char a Variable einen System.out.println("....") zu haben? Für jede beliebige Buchstabe soll dann dementsprechend der Code bei der Anzeige erscheinen.

Danke im Voraus

Gruß
 
Zuletzt bearbeitet:
In Java dürfte ein String ebenso wie im .NET ein Char-Array sein.
D.h. du iterierst durch den String und suchst für jedes Zeichen Deinen Morsecode und gibst diesen aus.

Code:
Pseudocode
foreach (char chr in TextString) 
{
     // suche für das aktuelle Zeichen den Morsecode und gib diesen aus.
    wenn chr= 'a', dann Printlin("....")
}

Den Morsecode musst Du den Zeichen schon selber zuordnen (Oder es gibt irgendwo eine Bibliothek)
 
Zuletzt bearbeitet:
Wenn ich das richtig Verstanden habe hast du ja schon alle Morsecodes für Großbuchstaben im dem Array m. Der ASCII-Code scheint der Index zu sein.

Also kannst du einfach folgendes machen um den Inhalt von a als Morsezeichen auszugeben:
Code:
String mors = m[Character.toUpperCase(a)]; // c in Großbuchstaben umwandeln und zugehörigen Morsecode finden
System.out.println(mors])

Noch eine kleine Verbesserung: Wenn du den ganzen Eingabestring übersetzen möchtest, würde ich statt charAt einfach eine Schleife benutzen:
Code:
for (char c : text) {
    String mors = m[Character.toUpperCase(c)]; // c in Großbuchstaben umwandeln und zugehörigen Morsecode finden
    System.out.println(mors);
}
 
Zuletzt bearbeitet: (Code korrigiert.)
Zurück
Oben