/* Autor: Bernhard PREIS MatrNr: 0200328 Beschreibung: Eine Geldbetrag soll eingelesen werden und auf Scheine und Münzen aufgeteilt werden. */ import eprog.*; public class CurrencyInput extends EprogIO{ public int lowerValueLimit; public int upperValueLimit; public String inputString; public int value; public String currency; // Konstruktor; speichert die Eingabe ab public CurrencyInput(String input){ inputString = input; } // wandelt einen String in einen int-Wert um public int stringToInt(String string){ return new Integer(string).intValue(); } // überprüft die Eingabe auf syntaktische Richtigkeit public boolean checkStringFormat(String string){ // hat der String zumindest 2 Stellen? if(string.length()<2) return false; // sind alle Zeichen bis auf das letzte Ziffern? for(int i=0;i'9') return false; } char lastCharacter=string.charAt(string.length()-1); // ist das letzte ein Buchstabe? if(lastCharacter<'A' || lastCharacter>'Z') return false; return true; } // prüft, ob die Zahl in den vorgegebenen Grenzen liegt public boolean checkValueRange(int value){ if(valueupperValueLimit) return false; return true; } //extrahiert den Wert aus der Eingabe public int getValue(String string){ // letztes Zeichen (Währung) abschneiden String subString = string.substring(0,string.length()-1); return stringToInt(subString); } //extrahiert die Währung aus der Eingabe public String getCurrency(String string){ // nur letztes Zeichen zurückgeben return string.substring(string.length()-1,string.length()); } // führt sämtliche Prüfungen durch public boolean check(){ if(!checkStringFormat(inputString)) return false; value = getValue(inputString); currency = getCurrency(inputString); if(!checkValueRange(value)) return false; return true; } }