F
Freewalker
Gast
Hallo Leute,
mittlerweile bin ich so weit gekommen!!!
Es ist aber ein Fehler drin, den ich leider nicht zuordnen kann.
Könnt Ihr mir helfen.
Ich poste mal den Quelltext
Der Fehler wäre
symbol : method matches (java.lang.String)
location: class java.lang.String
if (in.matches ("[\\*/\\+-]")) return in;
^
1 error
mittlerweile bin ich so weit gekommen!!!
Es ist aber ein Fehler drin, den ich leider nicht zuordnen kann.
Könnt Ihr mir helfen.
Ich poste mal den Quelltext
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);
}
}
Der Fehler wäre
symbol : method matches (java.lang.String)
location: class java.lang.String
if (in.matches ("[\\*/\\+-]")) return in;
^
1 error