Mein Problem ist folgendes.
Ich schreibe erst mal den code
Code:
import java.io.*;
/**
Freewalker
@author Freewalker :) NoNachname
@date Fr Okt 15 16:46:08 CEST 2004
*/
public class Freewalker
{
/** tastatur ist außerhalb der Methoden deklariert, um von allen lesenden Methoden verwendet werden zu können,
und static, da wir in main darauf zugreifen wollen.
*/
static BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
/**
*/
static void standardFehler ()
{
// 'Ihre Eingabe war ungültig' wäre besser
System.out.println ("Ihre Eingabe wurde als ungültig erkannt, bitte wiederholen !");
}
/** */
static long getGanzZahl (String beschreibung)
{
System.out.println (beschreibung);
long longzahl = 0;
while (true)
{
try
{
longzahl = Long.parseLong (tastatur.readLine());
return longzahl;
}
catch (NumberFormatException e)
{
standardFehler ();
}
catch (IOException ioe)
{
ioe.printStackTrace ();
System.exit (1);
}
}
}
/** */
static double getDoubleZahl (String beschreibung)
{
System.out.println (beschreibung);
double dbl = 0;
while (true)
{
try
{
dbl = Double.parseDouble (tastatur.readLine());
return dbl;
}
catch (NumberFormatException e)
{
standardFehler ();
}
catch (IOException ioe)
{
ioe.printStackTrace ();
System.exit (2);
}
}
}
/**
Funktion zum einlesen von einer ZEICHENKETTE (+, -, *, /).
Der gewünschte Eingabewert wird über den Parameter beschrieben.
Dieser TEXT wird dem Bediener angezeigt.
Die Funktion gibt immer eine ZEICHENKETTE zurück.
Sollte die eingegebene ZEICHENKETTE nicht "+" oder "-" oder "*" oder "/" sein,
so wird die Abfrage mit einer Fehlermeldung wiederholt.
@param beschreibung wird auf System.out ausgegeben.
@return String bestehend aus einem Zeichen aus der Menge [+-/*].
*/
static String getOperator (String beschreibung)
{
System.out.println (beschreibung);
long longzahl = 0;
while (true)
{
String in = null;
try
{
in = tastatur.readLine();
}
catch (IOException ioe)
{
ioe.printStackTrace ();
System.exit (3);
}
if (in.matches ("[\\*/\\+-]")) return in;
else standardFehler ();
}
}
/** */
public static void main (String args[])
{
new Freewalker ();
long ganzZahl = getGanzZahl ("Haben Sie ein int für mich?");
double fliesskommaZahl = getDoubleZahl ("Geben Sie einen Double ein?");
String operator = getOperator ("Welche Rechenoperation darf es sein: [+-*/]");
char op = operator.charAt (0);
double erg = 0.0;
switch (op)
{
case '+': erg = ganzZahl + fliesskommaZahl; break;
case '-': erg = ganzZahl - fliesskommaZahl; break;
case '*': erg = ganzZahl * fliesskommaZahl; break;
case '/': erg = ganzZahl / fliesskommaZahl; break;
}
System.out.println ("" + ganzZahl + " " + operator + " " + fliesskommaZahl + " = " + erg);
}
} Und habe ein Fehler und weiss nicht warum?
symbol : method matches (java.lang.String)
location: class java.lang.String
if (in.matches ("[\\*/\\+-]")) return in;
^
1 error
Habt Ihr eine Idee?