Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hier ist eine Fertige Klasse die so was macht und ein kleines Beispiel:
Die Pros werden zwar drüber schmunzeln aber da ich ein Blutiger Anfänger bin ist mir das recht egal :bae: :autsch:
Beispiel der Verwendung:
Code:
import java.text.*;
class testEingaben
{
public static void main(String args[])
{
Eingabe ein=new Eingabe(); //hier wird die eingabeklasse eingebunden
float punktZahl;
int ganzeZahl;
System.out.print("\nhier deine punktZahl:\t\t");
punktZahl=ein.liesFloat();
System.out.print("\nHier eine ganzeZahl\t\t");
ganzeZahl=ein.liesInt();
System.out.print("\n und das ist eingegeben worden!!!\n");
System.out.println("\n********************************************");
System.out.print("\nhier die Ausgebe von der punktZahl "+punktZahl+" und der ganzeZahl "+ganzeZahl+"! :D\n\n\n\n\n");
}
}
Eingabe Klasse:
Code:
import java.io.*;
class Eingabe
{
public int liesInt()
{
InputStreamReader einc = new InputStreamReader(System.in);
BufferedReader einstring = new BufferedReader(einc);
boolean fehler;
int zahl = 0;
do
{
fehler=false;
try
{
zahl = Integer.parseInt(einstring.readLine());
}
catch(IOException allg_fehler){}
catch(NumberFormatException format_fehler)
{System.out.println("Eine GANZE Zahl!");fehler=true;}
}
while (fehler);
return zahl;
}
public float liesFloat()
{
InputStreamReader einc = new InputStreamReader(System.in);
BufferedReader einstring = new BufferedReader(einc);
boolean fehler;
float zahl = 0;
do
{
fehler=false;
try
{
zahl = Float.parseFloat(einstring.readLine());
}
catch(IOException allg_fehler){}
catch(NumberFormatException format_fehler)
{System.out.println("Eine Kommazahl bitte!");fehler=true;}
}
while (fehler);
return zahl;
}
public double liesDouble()
{
InputStreamReader einc = new InputStreamReader(System.in);
BufferedReader einstring = new BufferedReader(einc);
boolean fehler;
double zahl = 0;
do
{
fehler=false;
try
{
zahl = Float.parseFloat(einstring.readLine());
}
catch(IOException allg_fehler){}
catch(NumberFormatException format_fehler)
{System.out.println("Eine Kommazahl bitte");fehler=true;}
}
while (fehler);
return zahl;
}
public String liesString()
{
InputStreamReader einc = new InputStreamReader(System.in);
BufferedReader einstring = new BufferedReader(einc);
String st = "";
try
{
st = einstring.readLine();
}
catch(IOException allg_fehler){System.exit(0);}
return st;
}
public char liesChar()
{
InputStreamReader einc = new InputStreamReader(System.in);
BufferedReader einstring = new BufferedReader(einc);
String st = "";
char c=' ';
try
{
st = einstring.readLine();
c = st.charAt(0);
}
catch(IOException allg_fehler){System.exit(0);}
return c;
}
}
Und wenn du nur ein Zeichen über die Konsole einlesen möchtest, dann brauchst du auch noch die Methode charAt(int index). Achja, den ganzen Eingabestream musst du noch in einer try-catch Anweisung verpacken, damit Stream Fehler abgefangen werden können.
Code:
import java.io.*;
public class EingabeZeichen
{
public static void main(String[] args)
{
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
char eingabe = ' ';
try{
System.out.print("Geben Sie bitte ein Zeichen ein: ");
eingabe = r.readLine().charAt(0);
}catch(IOException e){
System.out.println("Fehler!");
}
System.out.println("Sie haben \'" + eingabe + "\' eingegeben.");
}
}
Edit: Hab erst jetzt gesehen, dass mein Beitrag überflüssig ist...