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
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/user/Oubyi/1652363895285_nmmslarge__0_0_120_120_040779a85bcf89fd282fa9af46f30da0.png?v=1652363895000)
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.
![](https://images.gutefrage.net/media/user/PerfectMuffin/1444748168_nmmslarge.jpg?v=1444748168000)
Es fehlen die Kenntnisse, was römische Zahlen sind.