Software zum Umrechnen römischer Zahlen

alicedeh

Mitglied
Grüße,

ich möchte ein Programm entwickeln welches römische Zahlen in nummerische umwandelt.

Mein Code:

Java:
import java.util.Scanner;
public class Rom {
  
  public static void main(String[] args) throws InterruptedException{
    Scanner scan = new Scanner(System.in);
    
    String eingabe = "";
    int ausgabe = 0;
    
    System.out.print("Bitte geben Sie die römische Zahl ein: ");
    eingabe = scan.next();
    
    switch (eingabe) {
      case eingabe.equals("I") : 
      ausgabe = 1;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("i") : 
      ausgabe = 1;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("V") : 
      ausgabe = 5;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("v") :
      ausgabe = 5;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("X"): 
      ausgabe = 10;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("x") :
      ausgabe = 10;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("L"): 
      ausgabe = 50;
      System.out.println(ausgabe); 
      break;
      break;
      case eingabe.equals("l") :
      ausgabe = 50;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("C") : 
      ausgabe = 100;
      System.out.println(ausgabe); 
      break;
      break;
      case eingabe.equals("c") : 
      ausgabe = 100;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("D") : 
      ausgabe = 500;
      System.out.println(ausgabe); 
      break;
      break;
      case eingabe.equals("d") :
      ausgabe = 500;
      System.out.println(ausgabe); 
      break;
      case eingabe.equals("M") : 
      ausgabe = 1000;
      System.out.println(ausgabe); 
      break;
      break;
      case eingabe.equals("m") :
      ausgabe = 1000;
      System.out.println(ausgabe); 
      break;
      case "0" : 
      System.out.println("Bitte geben Sie eine römische Zahl ein!");
      break;
      default:System.out.println("Die Umrechnung einer römischen Zahl,");
      System.out.println("die aus mehreren Zeichen besteht, ist eine komplizierte Angelegenheit."); 
      
    } // end of switch
  }
}

Dabei stoße ich auf folgende Fehler:

"Compiliere E:\Java-Projekte\Verzweigungen\Rom.java mit Java-Compiler
Rom.java:15:26: error: incompatible types: boolean cannot be converted to String
case eingabe.equals("I") :"

Wie ihr sieht habe ich nirgends ein Boolean festgemacht und verstehe auch nicht weshalb er da meckert.

Kann mir jemand weiterhelfen?

Gruß
 

Thallius

Top Contributor
Du Must auch nicht für große und kleine Zeichen den Code 2x schreiben. Ein

Java:
case 'i':
case 'I':
    ....
    Break;

Tut es auch

Gruß

Claus
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Richtig schön wird der Code wenn du eine Key Value Collection nimmst und einfach als Key den Buchstaben benutzt. Dann wird dein programm ein Zweizeiler.

Gruß

Claus
 

consider

Mitglied
Ach, na wenn wir dabei sind mische ich auch mal mit :

Möglich wäre auch toUpperCase() auf den Eingabestring, die Ausgabe als String und println nur ein mal am Schluss:

Java:
String ausgabe;

switch (eingabe.toUpperCase()) {
			case "I":
				ausgabe = "1";
				break;
			case "V":
				ausgabe = "5";
				break;
			case "X":
				ausgabe = "10";
				break;
			case "L":
				ausgabe = "50";
				break;
			case "C":
				ausgabe = "100";
				break;
			case "D":
				ausgabe = "500";
				break;
			case "M":
				ausgabe = "1000";
				break;
			case "0":
				ausgabe = "Bitte geben Sie eine römische Zahl ein!";
				break;
			default:
				ausgabe = "Die Umrechnung einer römischen Zahl, \ndie aus mehreren Zeichen besteht, ist eine komplizierte Angelegenheit.";
			} // end of switch
			System.out.println(ausgabe);

Wird zumindest um einiges kürzer und DRY.
 

alicedeh

Mitglied
Ich schließe damit ab:

#1 (unsauber)

Java:
import java.util.Scanner;
public class Rom {
  
  public static void main(String[] args) throws InterruptedException{
    Scanner scan = new Scanner(System.in);
    
    String eingabe = "";
    int ausgabe = 0;
    
    System.out.println("Römischer Kalender wird geladen.");
    System.out.println("");
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(1500);
    System.out.print(" - ");
    Thread.sleep(200);
    System.out.print("-");
    Thread.sleep(200);
    System.out.print(" - ");
    
    System.out.println("");
    System.out.println("");
    
    System.out.print("Bitte geben Sie die römische Zahl ein: ");
    eingabe = scan.next();
    
    System.out.println("");
    
    System.out.println("Es wird gerechnet.");
    
    System.out.println("");
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(1500);
    System.out.print(" - ");
    Thread.sleep(200);
    System.out.print("-");
    Thread.sleep(200);
    System.out.print(" - ");
    
    System.out.println("");
    
    switch (eingabe) {
      case "I" : 
      ausgabe = 1;
      System.out.println("I = " + ausgabe); 
      break;
      case "i" : 
      ausgabe = 1;
      System.out.println("i = " + ausgabe); 
      break;
      case "V" : 
      ausgabe = 5;
      System.out.println("V = " + ausgabe); 
      break;
      case "v" :
      ausgabe = 5;
      System.out.println("v = " + ausgabe); 
      break;
      case "X": 
      ausgabe = 10;
      System.out.println("X = " + ausgabe); 
      break;
      case "x" :
      ausgabe = 10;
      System.out.println("x = " + ausgabe); 
      break;
      case "L": 
      ausgabe = 50;
      System.out.println("L = " + ausgabe); 
      break;
      case "l" :
      ausgabe = 50;
      System.out.println("l = " + ausgabe); 
      break;
      case "C" : 
      ausgabe = 100;
      System.out.println("C = " + ausgabe); 
      break;
      case "c" : 
      ausgabe = 100;
      System.out.println("c = " + ausgabe); 
      break;
      case "D" : 
      ausgabe = 500;
      System.out.println("D = " + ausgabe); 
      break;
      case "d" :
      ausgabe = 500;
      System.out.println("d = " + ausgabe); 
      break;
      case "M" : 
      ausgabe = 1000;
      System.out.println("M = " + ausgabe); 
      break;
      case "m" :
      ausgabe = 1000;
      System.out.println("m = " + ausgabe); 
      break;
      case "" : 
      System.out.println("Bitte geben Sie eine römische Zahl ein!");
      break;
      default:System.out.println("Die Umrechnung einer römischen Zahl, die aus mehreren Zeichen besteht,");
      System.out.println("ist eine komplizierte Angelegenheit."); 
      
    } // end of switch
  }
}
 
Zuletzt bearbeitet:

alicedeh

Mitglied
#2 (elegant) THX@consider

Java:
import java.util.Scanner; 
public class Rom_elegant {
  
  public static void main(String[] args) throws InterruptedException{
    Scanner scan = new Scanner(System.in);
    
    String eingabe = "";
    String ausgabe = "";
    
    System.out.println("Römischer Kalender wird geladen.");
    System.out.println("");
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(1500);
    System.out.print(" - ");
    Thread.sleep(200);
    System.out.print("-");
    Thread.sleep(200);
    System.out.print(" - ");
    
    System.out.println("");
    System.out.println("");
    
    System.out.print("Bitte geben Sie die römische Zahl ein: ");
    eingabe = scan.next();
    
    System.out.println("");
    
    System.out.println("Es wird gerechnet.");
    
    System.out.println("");
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(500);
    System.out.print(" - ");
    Thread.sleep(500);
    System.out.print("-");
    Thread.sleep(1500);
    System.out.print(" - ");
    Thread.sleep(200);
    System.out.print("-");
    Thread.sleep(200);
    System.out.print(" - ");
    
    System.out.println("");
    
    switch (eingabe.toUpperCase()) {
      case "I" : 
      ausgabe = "1";
      break;
      case "V" : 
      ausgabe = "5";
      break;
      case "X": 
      ausgabe = "10";
      break;
      case "L": 
      ausgabe = "50";
      break;
      case "C" : 
      ausgabe = "100";
      break;
      case "D" : 
      ausgabe = "500";
      break;
      case "M" : 
      ausgabe = "1000";
      break;
      case "" : 
      System.out.println("Bitte geben Sie eine römische Zahl ein!");
      break;
      default:System.out.println("Die Umrechnung einer römischen Zahl, die aus mehreren Zeichen besteht,");
      System.out.println("ist eine komplizierte Angelegenheit."); 
      
    } // end of switch
    System.out.println(eingabe + " = " + ausgabe);
  }
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Kommunikation "normaler PC" mit lokaler Software an "Cloud Service" und umgekehrt Java Basics - Anfänger-Themen 15
H software entwicklung Java Basics - Anfänger-Themen 139
B Email Client in der eigenen Software einbauen Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
S3CR3T Architektur der Software Java Basics - Anfänger-Themen 6
Mxxxt UML Software Java Basics - Anfänger-Themen 2
B Serial Key - Prüfung ob Software gekauft Java Basics - Anfänger-Themen 1
D Software per ssh downloaden und installieren Java Basics - Anfänger-Themen 2
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
B Allgemein Frage zur Software Entwicklung Java Basics - Anfänger-Themen 3
OnDemand Software-Design Java Basics - Anfänger-Themen 1
B [Projekt] CyberCafé Software Java Basics - Anfänger-Themen 13
F Gültigkeitszeitraum von Software beschränken Java Basics - Anfänger-Themen 17
J Hosting Software Java Basics - Anfänger-Themen 2
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
F software engeneering --> dokumentation??! Java Basics - Anfänger-Themen 6
J Software problem unter VISTA Java Basics - Anfänger-Themen 3
K GUI Builder Software ? Java Basics - Anfänger-Themen 6
G Java Software Tuner Java Basics - Anfänger-Themen 6
G Versionierung von Software Java Basics - Anfänger-Themen 4
G Software Updates in Eclipse Java Basics - Anfänger-Themen 11
E software concept erstellen! Java Basics - Anfänger-Themen 4
N software die sich als hardware ausgibt? Java Basics - Anfänger-Themen 6
M Java-Software so anbieten, dass sie leicht zu starten ist Java Basics - Anfänger-Themen 16
D Java Software zeigen nichts mehr an Java Basics - Anfänger-Themen 2
A Good articles about software component technology? Java Basics - Anfänger-Themen 2
X Java Versionen und Software-Paketnamen Java Basics - Anfänger-Themen 4
N Welche software hab ich eigentlich ? Java Basics - Anfänger-Themen 17
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
M Weitere Längen umrechnen Java Basics - Anfänger-Themen 2
W Stellenwertsysteme Umrechnen Java Basics - Anfänger-Themen 12
W Stellenwertsysteme umrechnen Java Basics - Anfänger-Themen 22
C Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 4
B Relativen Anteil von zwei Datümer auf Monatsebene umrechnen Java Basics - Anfänger-Themen 130
P Zeichenkette mit Binärzahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 3
F Koordinaten umrechnen Java Basics - Anfänger-Themen 10
Viktormk Methoden Zahlensysteme umrechnen / "Quartärsystem" Java Basics - Anfänger-Themen 4
GreenTeaYT Datentypen Fahrenheit - Celsius Umrechnen 2in1 Variable? Java Basics - Anfänger-Themen 10
D Liste mit Zeitstempeln in Arbeitszeit umrechnen Java Basics - Anfänger-Themen 7
N Zahlensysteme umrechnen; Probleme bei Kommazahlen Java Basics - Anfänger-Themen 3
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
H Umrechnen Aufgabe Java Basics - Anfänger-Themen 3
M Compiler-Fehler Binäre Zahlen in Dezimalzahlen umrechnen Java Basics - Anfänger-Themen 3
E Umrechnen Basis 2-36, Probleme mit Basis 36 Java Basics - Anfänger-Themen 8
R Minuten umrechnen. Java Basics - Anfänger-Themen 9
E Datentypen Von int in double umrechnen. Java Basics - Anfänger-Themen 3
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
J Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 5
V Programm zum Umrechnen von Pferdestärken in kW Java Basics - Anfänger-Themen 9
P Datentypen int in Prozent "umrechnen" Java Basics - Anfänger-Themen 4
V Tool zum Umrechnen Dezimal in Hex Java Basics - Anfänger-Themen 7
Developer_X Kreiskoordinaten in Normale Koordinaten umrechnen Java Basics - Anfänger-Themen 4
N Laufzeit in Nanosekunden - in Minuten umrechnen Java Basics - Anfänger-Themen 6
N Tage in Jahre, Monate umrechnen Java Basics - Anfänger-Themen 1
G Uhrzeit hh:mm:ss in minuten umrechnen Java Basics - Anfänger-Themen 4
G Timestamp in Minuten umrechnen Java Basics - Anfänger-Themen 8
S Millisekunden umrechnen Java Basics - Anfänger-Themen 12
J Datum in Kalenderwoche umrechnen Java Basics - Anfänger-Themen 3
F Seknunden in dd.MM.YYYY umrechnen Java Basics - Anfänger-Themen 9
G Farbwerte umrechnen Java Basics - Anfänger-Themen 4
M mm in cm umrechnen und auf 5er oder auf 10er aufrunden! Java Basics - Anfänger-Themen 2
G Maßeinheiten umrechnen Java Basics - Anfänger-Themen 3
D Formel zum umrechnen in java o_O Java Basics - Anfänger-Themen 9
R in Binärzahlen umrechnen Java Basics - Anfänger-Themen 15
M Dateigrösse umrechnen? Java Basics - Anfänger-Themen 6
G Umrechnen von Zahlensystemen Java Basics - Anfänger-Themen 7
G byte und double umrechnen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben