Hallo Ihr lieben. Ich bräuchte mal wieder eure Hilfe. Unzwar hänge ich an einem Problem.
Folgende Aufgabenstellung:
Schreibe ein Programm(SWING oder JavaFX) welches römische zahlen in Dezimalzahlen konvertiert und umgekehrt.
Die Dezimalzahlen in römische zahlen zu konvertieren habe ich hinbekommen, jedoch habe ich das Problem, wenn ich einen String in ein Textfeld einlese
kann ich nicht anhand einer Schleife den Wert der Römischen Zahl ermitteln um ihn zu konvertieren und in einem Textfeld auszugeben.
Über gute Denkanstöße würde ich mich sehr freuen. und sorry, dass ich ein Klassisches Thema erneut geöffnet habe.
in der Mehode umrechnen in Arabisch ist mein Denkfehler.
Vorab bedanke ich mich und wünsche euch allen ein schönes Wochenende.
Meine Fehlermeldung
Caused by: java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:678)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at romZahlen.FXMLController.umrechenenInRom(FXMLController.java:22)
... 57 more
Folgende Aufgabenstellung:
Schreibe ein Programm(SWING oder JavaFX) welches römische zahlen in Dezimalzahlen konvertiert und umgekehrt.
Die Dezimalzahlen in römische zahlen zu konvertieren habe ich hinbekommen, jedoch habe ich das Problem, wenn ich einen String in ein Textfeld einlese
kann ich nicht anhand einer Schleife den Wert der Römischen Zahl ermitteln um ihn zu konvertieren und in einem Textfeld auszugeben.
Über gute Denkanstöße würde ich mich sehr freuen. und sorry, dass ich ein Klassisches Thema erneut geöffnet habe.
in der Mehode umrechnen in Arabisch ist mein Denkfehler.
Vorab bedanke ich mich und wünsche euch allen ein schönes Wochenende.
Java:
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
public class FXMLController {
@FXML private Stage meineStage;
@FXML TextField rom;
@FXML TextField arab;
int[] arabic = {1,4,5,9,10,40,50,90,100,400,500,900,1000};
String[] roem = {"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
@FXML private void umrechenenInRom() {
for (int i = 1; i <= Integer.parseInt(arab.getText()); i++){
String result ="";
int input = i;
int counter = arabic.length-1;
while (input > 0){
if (input >= arabic[counter]){
result = result + roem[counter];
input = input - arabic[counter];
rom.setText(result);
}
else{
counter--;
}
} }
}
@FXML private void umrechnenInArabisch() {
rom.getText().toString();
for (int i = 1; i <= Integer.parseInt(rom.getText()); i++){
String result = "";
int input = i;
int counter = roem.length-1;
while (input > 0){
if (input >= arabic[counter]){
result = result + arabic[counter];
input = input - arabic[counter];
arab.setText(result);
System.out.println("test");
}
else{
counter--;
}
}}
}
Meine Fehlermeldung
Caused by: java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:678)
at java.base/java.lang.Integer.parseInt(Integer.java:786)
at romZahlen.FXMLController.umrechenenInRom(FXMLController.java:22)
... 57 more