kann mir jemand helfen

mamut77

Grünschnabel
hi leute
bin grad beim java lernen und programmier so ein beispielprogramm
wie ihr hier sehen könnt zur zeit nicht sehr anspruchsvoll
:

Code:
package Fahrzeug;
abstract class StrassenFzg {
 protected String bez;
 protected short geschw;
 protected boolean verliehen;
 abstract boolean eingeben();
 abstract boolean anzeigen();
 public boolean verleihen() {
  if (verliehen)
   return false;
  else {
   verliehen = true;
   return true;
  }
 }
}
-------------------------------------------------------------------------------------------------
Code:
public class Auto extends StrassenFzg {
 protected short plaetze;
 public boolean eingeben() {
  Scanner eingabe = new Scanner(System.in);
  try {
   System.out.print("Bezeichnung: ");
   bez = eingabe.next();
   System.out.print("Sitzplaetze: ");
   plaetze = eingabe.nextShort();
   System.out.print("Geschwindigkeit: ");
   geschw = eingabe.nextShort();
   return true;
  } catch (Exception e) {
   return false;
  }
 }
 public boolean anzeigen() {
  System.out.println("/nDas Auto ist ein " + bez);
  System.out.println("Es hat " + plaetze + " Sitze.");
  System.out.println("Der Top-Speed: " + geschw);
  if (verliehen)
   System.out.println("Es ist verliehen.");
  else
   System.out.println("Es ist nicht verliehen.");
  return true;
 }
}
------------------------------------------------------------------------------------------------------------------------------
Code:
public class AutoTest {
 public static void main(String[] args) {
 
 Auto ein_auto;
 ein_auto = new Auto();
 if (ein_auto.eingeben())
  ein_auto.anzeigen();
 else
  System.out.println("Fehlerhafte Eingabe!");
 
 }
}
-----------------------------------------------------------------------------------
das wars jetzt meine frage
wenn ich es laufen lasse und bei der bezeichnung zb. volvo v70 eingebe und enter drücke
erkennt er das wort noch dem leerzeichne als sitzplätze an und liefert dannch:

Bezeichnung: volvo v40

Sitzplaetze: Fehlerhafte Eingabe!

hab schon alles mögliche probier(delimiters usw.)
aber nie klappt es so wie es sein sollte
hat jemand ein tip wie es klappen könnte

danke im voraus
 
Zuletzt bearbeitet von einem Moderator:
mamut77 hat gesagt.:
Code:
public class Auto extends StrassenFzg {
 protected short plaetze;
 public boolean eingeben() {
  Scanner eingabe = new Scanner(System.in);
  try {
   System.out.print("Bezeichnung: ");
   bez = eingabe.next();
   System.out.print("Sitzplaetze: ");
   plaetze = eingabe.nextShort();
   System.out.print("Geschwindigkeit: ");
   geschw = eingabe.nextShort();
   return true;
  } catch (Exception e) {
   return false;
  }
 }
 public boolean anzeigen() {
  System.out.println("/nDas Auto ist ein " + bez);
  System.out.println("Es hat " + plaetze + " Sitze.");
  System.out.println("Der Top-Speed: " + geschw);
  if (verliehen)
   System.out.println("Es ist verliehen.");
  else
   System.out.println("Es ist nicht verliehen.");
  return true;
 }
}
------------------------------------------------------------------------------------------------------------------------------
das wars jetzt meine frage
wenn ich es laufen lasse und bei der bezeichnung zb. volvo v70 eingebe und enter drücke
erkennt er das wort noch dem leerzeichne als sitzplätze an und liefert dannch:

Bezeichnung: volvo v40

Sitzplaetze: Fehlerhafte Eingabe!

hab schon alles mögliche probier(delimiters usw.)
aber nie klappt es so wie es sein sollte
hat jemand ein tip wie es klappen könnte

danke im voraus

Tach,
nun, wenn bei der Eingabe der Sitzplätze ein Fehler auftritt, wird vermutlich diese Zeile

plaetze = eingabe.nextShort();

Probleme bereiten. Die Variable "eingabe" ist vom Typ Scanner, den Du nicht weiter spezifizierst, also weiß ich auch nicht genau, welche Methoden zur Verfügung stehen. Aber nextShort() dürfte es m.E. nicht geben. Probier mal

plaetze = eingabe.nextInt();

und ändere zugehörend die Deklaration in

protected int plaetze;
 
das ändert leider auch nichts

es wird einfach das zeweite wort "v70" durch das leerzeichen in Sitzplätze geschrieben
und daraufhin der fehlertext angezeigt
keine ahnung wie ich das verhindere
 
Zurück