Vergleiche mit for schleife

  • Themenstarter Themenstarter Newby
  • Beginndatum Beginndatum
N

Newby

Gast
Hi ich hab mal eine frage! Ich will prüfen ob ein gegebener String nur die Römischen Ziffern enthält. Leider steht bei mir das die for schleife unsinnig ist, ich hoffe ihr könnt mir helfen.
public class ToDecimal {

String[] symbols = { "I", "V", "X", "L", "C", "D", "M" }; // lookup table
// for the
// symbols
// MUST'NT BE
// CHANGED!
int[] values = { 1, 5, 10, 50, 100, 500, 1000 }; // lookup table for the
// divisors MUST'NT BE
// CHANGED!
String I = "I";

public boolean StringReader(String Roman) {

for (int i = 0; i < Roman.length() - 1; i++) {
if (Roman.substring(i, i + 1) == "I"
|| Roman.substring(i, i + 1) == "V"
|| Roman.substring(i, i + 1) == "X"
|| Roman.substring(i, i + 1) == "L"
|| Roman.substring(i, i + 1) == "C"
|| Roman.substring(i, i + 1) == "D"
|| Roman.substring(i, i + 1) == "M") {
return true;
} else {
return false;
}

}
}
}
 
1. Den Hinweis über Java-Tag in GROßEN ROTEN BUCHSTABEN kann man wohl kaum übersehen, oder?
2. Wusste ich gar nicht, dass es eine Fehlermeldung "Du, das da ist sinnlos" bei Java gibt

Und zum eigentlichen Thema:
Code:
return true
muss nach der Schleife stehen. Und das auch erst, nach dem man die String nicht mit
Code:
==
, sondern mit
Code:
equals
verglichen hat.
 
Ich würde dir auch eher einen RegEx anraten, anstelle einer for-schleife:

Java:
return Roman.matches("[IVXLCDM]+");
Ach nebenbei, Java konventionen beachten: Variablen schreibt man klein, Methoden auch und man verwendet CamelCase.
 

Neue Themen


Zurück
Oben