Brauche Hilfe bei der Programmierung: Umrechnung von Römischen Zahlen in Arabische in Java - Was fehlt dem Programm, damit arabische Zahlen ausgegeben werden?
/** * Entwickeln Sie eine Java-Applikation zum Konvertieren von römischen Zahlen in * arabische Zahlen. Als Instanzvariable sind die Zeichenketten für * die römischen Zahlen und die ganzen Zahlen zu verwalten. Folgende Methoden * sind zu implementieren: Einlesen der römischen Zahl, Umwandlung einer * römische Zahl in eine ganzen Zahl, Ausgeben der ganzen Zahl. */
public class Umrechnung {
String romanNumber;
int arabicNumber;
public String[] RomanNumber;
public int [] ArabicNumber;
public int generateArabicNumber( String romanNumber )
{
int arabicNumber = 0;
for ( int stelle = 0; stelle < romanNumber.length(); stelle++ )
{
char ziffer = romanNumber.charAt( stelle );
switch (ziffer) {
case 'I':
arabicNumber = arabicNumber + 1;
break;
case 'V':
arabicNumber = arabicNumber + 5;
break;
case 'X':
arabicNumber = arabicNumber + 10;
break;
case 'L':
arabicNumber = arabicNumber + 50;
break;
case 'C':
arabicNumber = arabicNumber + 100;
break;
case 'D':
arabicNumber = arabicNumber + 500;
break;
case 'M':
arabicNumber = arabicNumber + 1000;
break;
case 'ↁ':
arabicNumber = arabicNumber + 5000;
break;
case 'ↂ':
arabicNumber = arabicNumber + 10000;
break;
default:
break;
}
}
return arabicNumber;
}
}
3 Antworten
Im römischen gibt es folgende Zeichen, I V X L M C D Jedem Buchstaben weist du ein Wert zu. Dann musst du die Eingabe in ein Char Array umwandeln, mit einer for Schleife gehst du das Array durch, wenn nun bspws. ein V erscheint, prüfst du was i + 1 ist. Wenn i + 1 kleiner als i ist addierst du das auf i, wenn i + 1 größer als i ist subtrahierst du i von i + 1. Grüße
Ich denke, Du machst Dir das zu einfach.
Deine Methode würde für "IV" nämlich - wenn ich das richtig sehe - 6 ausgeben, statt 4und z.B. für XC dann 110 statt 90. Du musst also prüfen, ob eine niedrigere Ziffer VOR oder NACH einer höheren steht.
Es fehlen die Kenntnisse, was römische Zahlen sind.