Anzahl von Zahlen bei eingabe begrenzen

Guten Tag,

ich programmiere momentan einen Schaltjahrrechner.
Die Berechnung des Schaltjahres ist schon geschrieben und funktioniert ohne Probleme.

Mein Problem ist, dass ich mein Programm dazubringen muss nur vierstellige Zahlen akzeptiert;
also die Zahl 8 n. Chr. nur akzeptiert und weiterverarbeitet, wenn man die Zahl als 0008 eingibt.

Mein bisheriger Code sieht so aus:

package schaltjahrrechner;
import java.util.Scanner;
public class Schaltjahrrechner {
public static void main(String[] args) {
try{

Scanner keyboard=new Scanner(System.in);
int Jahr;
System.out.println("Geben Sie eine vierstellige Jahreszahl.");
System.out.println("Please enter a number of a year, the number has to have four digits.");
System.out.println("Bedingung: Die Zahl muss >= 0000 sein");
System.out.println("Condition: The number have to be >= 0000");
System.out.println("Bedingung: Die Zahl muss <= 2100 sein.");
System.out.println("Condition: The number has to be <=2100.");
Jahr=keyboard.nextInt();
if (Jahr<0) {System.out.println("Diese Zahl ist außerhalb des berechenbaren Zahlenraums.");
System.out.println("The number is not computable.");
}
else if (Jahr>=2101) {System.out.println("Diese Zahl ist außerhalb des berechenbaren Zahlenraums. ");
System.out.println("The number is not computalbe.");
}
else if (Jahr % 100 == 0) {System.out.print("Das Jahr " + Jahr + " ist kein ein Schaltjahr");
System.out.println("The year " + Jahr + " is not a leap-year.");
}
else if ((Jahr % 400 == 0)) {System.out.print("Das Jahr " + Jahr + " ist ein Schaltjahr");
System.out.println("The year " + Jahr+ " is a leap-year.");
}
else if (Jahr % 4==0) {System.out.print("Das Jahr " + Jahr + " ist ein Schaltjahr");
System.out.println("The year "+Jahr+ "is a leap-year.");
}
else {System.out.println("Das Jahr " + Jahr + " ist kein Schaltjahr");
System.out.println("The year" +Jahr+ "is not a leap-year.");
}
keyboard.close();
}catch (Exception e) {System.out.println("Bitte geben Sie eine Zahl ein, wie oben beschrieben");
System.out.println("Please enter a number with the conditions above.");
}}

}
Wie kann ich mein Code bearbeiten um eine Begrenzung der Zahlenanzahl auf nur 4 Ziffern zu erreichen. Alo dass mein Programm nur Zahlen akzeptiert, welche 4 Ziffernhat und sonst eine Fehlermeldung ausspuckt.

Vielen Dank und schönen Abend noch,
Der Maschbaustudent
 
Muss ich dafür ein java import.util.String haben?

Wenn ich die
If String Schleife habe muss ich dann die restlichen Vedingungen als else if Schleife Schreiben?

Kann ich dann einfach ans ende ein
else
{System.out.println ("Bitte geben sie eine vierstellige Zahl ein");}

anhängen um meine Schleife kontrolliert abzubrechen bei falscheingabe?
 
Ich meinte meine if Bedingung.

Wie kann ich die String aktivieren?
Und wie kann ichdas Abbrechen als "else" programmieren, sobald die Bedingungen (weniger/mehr als 4 Ziffern) nicht erfüllt wird?
 

JStein52

Top Contributor
Mir ist noch nicht ganz klar was du willst aber einfach so wie es oben schon mal stand:

Code:
if(String.valueOf(Jahr).length() != 4) {
   System.out.println("Sie muessen eine vierstellige Zahl eingeben");
   // und dann geht es hier irgendwie weiter
}
else {
   // es war alles in Ordnung, jetzt geht es hier weiter
}

Und was heisst wie kann ich String aktivieren ? Schreibe es mal in deinem Code einfach an der gewünschten Stelle so hin. Du musst da nix aktivieren
 
Im Endeffekt möchte ich das mein Programm nur die Berechnung ausführt, wenn ich vier Stellen eingeben. Also sofort abbricht wenn ich weniger oder mehr als 4 Ziffern eingebe.
 
Also sozusagen eine verschaltelte if-clause

Berechnung nur wenn Bedingung 1 (Anzahl der Ziffern) und Bedingung 2 (ob Schaltjahr oder nicht) erfüllt sind dann Ausgabe (....ist/ist kein Schaltjahr)

Sobald Bedingung 1 oder 2 nicht erfüllt sind möchte ich einen Abbruch:
"Diese Zahl kann nicht berechnet werden...."
 

JStein52

Top Contributor
"Jahr" ist ja vom Typ int und du liest sie via Scanner und nextInt() ein. Und dann rechnest du damit weiter. Und ich behaupte mal wenn du dort 0008 eingibst ist das Ergebnis das gleiche als wenn du 8 eingibst.
Gib dir doch "Jahr" einfach mal nach dem einlesen wieder aus.
 
"Entwerfen sie einen Schaltjahrrechner welcher die Schaltjahre von 0000 bis 2100 ausgibt.
Bedingungen:
Das Programm muss abbrechen, wenn die eingegebene Zahl keine 4 Stellen hat."
 

JStein52

Top Contributor
Ich halte diese Bedingung zwar für absoluten Schwachsinn aber wenn es sein muss:

Code:
Scanner keyboard=new Scanner(System.in);
int Jahr;
System.out.println("Geben Sie eine vierstellige Jahreszahl.");
System.out.println("Please enter a number of a year, the number has to have four digits.");
System.out.println("Bedingung: Die Zahl muss >= 0000 sein");
System.out.println("Condition: The number have to be >= 0000");
System.out.println("Bedingung: Die Zahl muss <= 2100 sein.");
System.out.println("Condition: The number has to be <=2100.");
String line = keyboard.nextLine();
if (line.length() < 4) {
   // Fehler ausgeben und return
}
else {
  Jahr=line.parseInt();
}
 
Funktioniert damit nicht.

Dem Scanner fehlt durch das "String line=...." die eigentliche Variable Jahr, die er eigentlich als eingabe annehmen soll.
Auch meint Netbeans, dass die else-Anweisung "Jahr=line.parseInt ();" nicht als Symbol oder Methode gefunden werden kann.
 
Hab meinen Fehler gefunden.

Ich habe alle Variablen von Jahr zu Line geändert.
Z. Bsp. Von
( " Das Jahr" +Jahr+ "ist ein Schaltjahr.")
Zu
("Das Jahr" +line+ "ist ein Schaltjahr")
 
Danke an alle für die schnelle und super kompetente Hilfe.

Zum Schluss:
@JStein52: zum Thema warum die Nullen davor bleiben müssen, sag ich nur: Wat mut, dat mut. Besser ich kann es jetzt merke es mir und kann es dann in der nächsten Klausur und auch danach weiterhin anwenden. ;)
 
Ich habe nur die System.out.print mit line vergeben.

Die if Bedingung(Jahr....) bleibt witerhin gleich.

Nur hat sich en neues Problem aufgetan.
Trotz der If-bedingung der line.length gibt er auch alles aus, wenn es weniger als vier Ziffern hat.

Den Code stelle ich rein.
 
mein Modulo habe ich verwirklicht durch z. Bsp. if(Jahr%4!=0)........

Das ist mein jetziger Code. Wo liegt mein Fehler? trotz der line.length nimmt das Programm auch eingaben, welche merh oder weniger als 4 Ziffern haben.
Java:
package schaltjahrrechner;
import java.util.Scanner;
public class Schaltjahrrechner {
 public static void main(String[] args) {
  Scanner keyboard = new Scanner(System.in);
  int Jahr;
  System.out.println("Geben Sie eine vierstellige Jahreszahl.");
  System.out.println("Please enter a number of a year, the number has to have four digits.");
  System.out.println("Bedingung: Die Zahl muss >= 0000 sein");
  System.out.println("Condition: The number have to be >= 0000");
  System.out.println("Bedingung: Die Zahl muss <= 2100 sein.");
  System.out.println("Condition: The number has to be <=2100.");
  String line = keyboard.nextLine();
  if ((line.length() < 4) || (line.length() > 4)) {
   System.out.print("Das Jahr " + line + " kann nicht berechnet werden. Sie müssen vier Ziffern eingeben.");
   System.out.println("The year " + line + " is not computable. The number has to have four digits.");
  } else {
   Jahr = Integer.parseInt(line);
   if (Jahr == 0000) {
    System.out.println("Das Jahr 0000 ist ein Schaltjahr");
    System.out.println("The year 0000 is a leap-year.");
   } else if (Jahr < 0) {
    System.out.println("Diese Zahl ist außerhalb des berechenbaren Zahlenraums.");
    System.out.println("The number is not computable.");
   } else if (Jahr >= 2101) {
    System.out.println("Diese Zahl ist außerhalb des berechenbaren Zahlenraums. ");
    System.out.println("The number is not computalbe.");
   } else if (Jahr % 100 == 0) {
    System.out.println("Das Jahr " + line + " ist kein  Schaltjahr");
    System.out.println("The year " + line + " is not a leap-year.");
   } else if ((Jahr % 400 == 0)) {
    System.out.println("Das Jahr " + line + " ist ein Schaltjahr");
    System.out.println("The year " + line + " is a leap-year.");
   } else if (Jahr % 4 == 0) {
    System.out.println("Das Jahr " + line + " ist ein Schaltjahr");
    System.out.println("The year " + line + " is a leap-year.");
   } else if ((Jahr % 4 != 0) && (Jahr % 400 != 0)) {
    System.out.println("Das Jahr " + line + " ist kein Schaltjahr");
    System.out.println("The year " + line + " is not a leap-year.");
   }
  }
 }
}
 

Meniskusschaden

Top Contributor
Das ist mein jetziger Code. Wo liegt mein Fehler? trotz der line.length nimmt das Programm auch eingaben, welche merh oder weniger als 4 Ziffern haben.
Kann ich nicht reproduzieren. Beispiel:
Code:
Geben Sie eine vierstellige Jahreszahl.
Please enter a number of a year, the number has to have four digits.
Bedingung: Die Zahl muss >= 0000 sein
Condition: The number have to be >= 0000
Bedingung: Die Zahl muss <= 2100 sein.
Condition: The number has to be <=2100.
150
Das Jahr 150 kann nicht berechnet werden. Sie müssen vier Ziffern eingeben.The year 150 is not computable. The number has to have four digits.
 

JStein52

Top Contributor
Bei mir funktioniert dein Programm

run:
Geben Sie eine vierstellige Jahreszahl.
Please enter a number of a year, the number has to have four digits.
Bedingung: Die Zahl muss >= 0000 sein
Condition: The number have to be >= 0000
Bedingung: Die Zahl muss <= 2100 sein.
Condition: The number has to be <=2100.
12345
Das Jahr 12345 kann nicht berechnet werden. Sie müssen vier Ziffern eingeben.The year 12345 is not computable. The number has to have four digits.

Edit: ein bisschen zu spät ;););)
 
Hatte die if Bedingung der line.length erst als 2 IF Bedingungen stehen. Dadurch hat er nur für die eine If Bedingung die dazugehörige Else-Bedingung ausgeführt.

Jetzt habe ich es aber geschrieben als:

Java:
 if ((line.length <4) || line.length>4))
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
M Anzahl Zahlen in String Java Basics - Anfänger-Themen 21
F Anzahl der eingegebenen Zahlen ausgeben Java Basics - Anfänger-Themen 14
D Ermitteln der Anzahl gleicher Nachkommastellen 2er Zahlen Java Basics - Anfänger-Themen 9
J Anzahl der Double Zahlen zwischen 0 und 1 Java Basics - Anfänger-Themen 14
N Fibo Zahlen:iterativ,rekursiv Anzahl der Additionen zählen Java Basics - Anfänger-Themen 2
N Anzahl von Zahlen-wechsel im Vector Java Basics - Anfänger-Themen 2
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
Ibrahim Anzahl möglicher Reiserouten zurückgeben Java Basics - Anfänger-Themen 5
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
nils812 Black Jack Karten Anzahl begrenzen Java Basics - Anfänger-Themen 5
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
C Anzahl ArrayLists unbekannt Java Basics - Anfänger-Themen 4
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 5
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
sondr Anzahl der gleichen Positionen im Array Java Basics - Anfänger-Themen 3
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
K Anzahl gleicher Elemente in Array Java Basics - Anfänger-Themen 32
T befehle unterschiedlicher anzahl an strings wiedergeben Java Basics - Anfänger-Themen 2
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
LikeManuel Anzahl der Teiler Java Basics - Anfänger-Themen 6
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3
ralli85 Programm nach einer gewissen Anzahl von Eingaben beenden Java Basics - Anfänger-Themen 15
Z Ausgabe: Anzahl Sterne, danach verringern Java Basics - Anfänger-Themen 7
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
V Anzahl der Möglichkeiten 20 € zu bezahlen Java Basics - Anfänger-Themen 2
A variable Anzahl an Nutzereinagben Java Basics - Anfänger-Themen 4
stylegangsta Anzahl der gefunden array Werte ausgeben Java Basics - Anfänger-Themen 6
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
M Überschneidende Anzahl von Tagen Java Basics - Anfänger-Themen 4
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
I Anzahl der Rechenschritte darstellen lassen Java Basics - Anfänger-Themen 11
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
A Rekursion, Anzahl von Stellen ausgeben Java Basics - Anfänger-Themen 7
S Anzahl Quersummen bis zur Einstelligkeit Java Basics - Anfänger-Themen 12
S Anzahl unterschiedlicher Elemente zählen Java Basics - Anfänger-Themen 4
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
C Beliebige Anzahl Arrays zusammenfügen Java Basics - Anfänger-Themen 5
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
I Methoden ByteBuffer - Anzahl führender Nullen Java Basics - Anfänger-Themen 3
E Array Anzahl verschiedener Werte ausgeben Java Basics - Anfänger-Themen 3
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
B Anzahl if anweisungen nicht bekannt Java Basics - Anfänger-Themen 3
T Anzahl der Schritte berechnen Java Basics - Anfänger-Themen 6
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
B Variablen Unbekante anzahl an Strings splitten und vergleichen Java Basics - Anfänger-Themen 31
A Threads Minimale und maximale Anzahl. Java Basics - Anfänger-Themen 28
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
A Anzahl nodes in einem Tree Java Basics - Anfänger-Themen 2
G maximale Anzahl der Tage im Monat Java Basics - Anfänger-Themen 18
G Datentypen Double ausgeben mit minimaler Anzahl Nachkommastellen Java Basics - Anfänger-Themen 3
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
B genaue Anzahl der Operationen in Schleifen Java Basics - Anfänger-Themen 5
Dit_ Anzahl der Bestellungen grafisch abbilden | Statistisk Java Basics - Anfänger-Themen 6
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
F Methoden Hanoi - Anzahl der Bewegungen Java Basics - Anfänger-Themen 8
A Counter für die anzahl von regulären ausdrücken Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben