Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Java

GELÖST

Prüfen auf -1 funktioniert nicht

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

05.08.2012 um 13:26 Uhr, 3590 Aufrufe, 11 Kommentare

Hallo
Versuche mich ja gerade an Java, und arbeite mich da gerade durch ein Tutorial.
Nun habe ich aber wider ein Problem.

Und zwar versuche ich eine Eingabe auf Korrektheit zu Prüfen.
Folgende Zeichen sind erlaubt:
1
2
3
-1
Habe es so weit, das mein Prüfer die Eingabe zwischen 1-3 und String unterscheiden kann.
Also wenn die Angabe z.B. "Hallo" ist, ist sie Falsch.
Bei 1-3 Richtig.
Wenn ich aber -1 eingebe kommt auch Falsch(Soll aber Richtig sein)
Irgendwas mache ich falsch, weiß aber noch nicht wo.

hier meine class:

01.
class Pruefer 
02.
03.
	private String eingabe; 
04.
	 
05.
	public void Eingabe() 
06.
07.
		//int eingabe; 
08.
09.
	public boolean pruefen(String eingabe) 
10.
11.
		if(eingabe.matches("[0-9]+")) 
12.
13.
			int eingabe1 = Integer.parseInt(eingabe); 
14.
			 
15.
			if (eingabe1 == 1) 
16.
17.
				return true; 
18.
19.
			else  
20.
				if (eingabe1 == 2) 
21.
22.
				return true; 
23.
24.
				else  
25.
					if (eingabe1 == 3) 
26.
27.
					return true; 
28.
29.
					else  
30.
						if (eingabe1 == (2-3)) 
31.
32.
								return true; 
33.
34.
						else 
35.
							return false; 
36.
37.
		else 
38.
			return false; 
39.
40.
}
Stehe beim class schreiben noch relativ am Anfang. Wenn jemand Tipps hat, wie ich das aufgeräumter /kürzer schreiben kann, immer her damit.
Das mit dem 2-3 war nur ein versuch, eigentlich soll dort -1 stehen.
Vermute den Fehler ja in dieser Zeile:
01.
if(eingabe.matches("[0-9]+"))
Aber auch wenn ich dort das + entferne geht es nicht.

Schonmal Danke für eine Antwort.
Mfg
Power-Poler
Mitglied: bastla
05.08.2012 um 14:20 Uhr
Hallo Power-Poler!

Versuch es einmal mit
if(eingabe.matches("[+-]*[0-9]+"))
Grüße
bastla
Bitte warten ..
Mitglied: dog
05.08.2012 um 14:24 Uhr
...da war der bastla mal wieder schneller, auch wenn ich nicht unbedingt "----9" erlauben würde

Viel einfacher wäre es aber sich die String-Prüfung ganz zu sparen und einfach die Exception von Integer.parseInt zu fangen (die in dem Programm auch immer noch auftreten kann. Versuch mal 8589934591 einzugeben...)
Bitte warten ..
Mitglied: bastla
05.08.2012, aktualisiert um 14:32 Uhr
@dog
auch wenn ich nicht unbedingt "----9" erlauben würde
Hast recht
if(eingabe.matches("^[+-]{0,1}[0-9]+$"))
Grüße
bastla
Bitte warten ..
Mitglied: Power-Poler
05.08.2012, aktualisiert um 14:41 Uhr
Danke für eure Antworten.
@dog:
8589934591
Exception in thread "main" java.lang.NumberFormatException: For input string: "
8589934591"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Pruefer.pruefen(VorratskammerTester.java:14)
at VorratskammerTester.main(VorratskammerTester.java:158)
Aber warum?
Naja, ist für die Aufgabe bestimmt unerheblich; aber wenn ich noch eine Längenprüfung hinein baue, müsste es doch gehen, oder gibt es dan noch weitere Stolperfallen?
01.
if(eingabe.length() < 3)
Ja, hat funktioniert
@bastla
Danke, das funktioniert jetzt.
Hab gerade noch eine Aktualisierung bemerkt, auf was wird dort jetzt genau überprüft?
Bitte warten ..
Mitglied: bastla
05.08.2012, aktualisiert um 14:43 Uhr
Hallo Power-Poler!

Es sollte jetzt nur noch möglich sein, am Beginn (^) kein oder ein Plus oder Minus und danach bis zum Ende ($) nur noch mindestens eine Ziffer einzugeben (wenn Du die Anzahl der Ziffern festlegen willst, kannst Du als Pattern zB
^[+-]{0,1}[0-9]{1,4}$
für maximal 4-stellige Zahlen verwenden) ...

Grüße
bastla
Bitte warten ..
Mitglied: Power-Poler
05.08.2012, aktualisiert um 14:50 Uhr
Ah, ich glaube langsam verstehe ich es.
Auch wenn mich dein 1-4 etwas irritiert hat.
Weil oben 0,1 in der {} Steht.
Aber so kann ich mir die lägen Prüfung sparen.
Danke euch beiden, jetzt kann ich endlich weitermachen

Das ist furchtbar mit der Bearbeiten Funktion, ständig ändert sich alles
Bitte warten ..
Mitglied: dog
05.08.2012 um 14:57 Uhr
^$ ist in dem Fall überflüssig, weil die String.matches() Funktion die immer automatisch hinzufügt.

Testen kann man das hier: http://www.regexplanet.com/advanced/java/index.html

Und {0,1} würde ich noch als ? abkürzen
Bitte warten ..
Mitglied: bastla
05.08.2012 um 14:58 Uhr
Hallo Power-Poler!
Das ist furchtbar mit der Bearbeiten Funktion, ständig ändert sich alles
Nennt sich "work in progress" - jetzt bleibt's aber so, wie's da oben steht ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
05.08.2012 um 15:00 Uhr
Hallo dog!

Danke für die Ergänzungen - dann schreib ich nochmals die vorläufig endgültige Version hin:
if(eingabe.matches("^[+-]?[0-9]+"))
Grüße
bastla
Bitte warten ..
Mitglied: Power-Poler
05.08.2012, aktualisiert um 15:35 Uhr
So nächstes Problem (Ich schreib es mal hier mit rein, wenn ihr meint, das ein neues Thema besser ist, kurz sagen, dan lösche ich es hier und mach ein neues).

Hier ist jetzt meine Eingabeaufforderung:
01.
Eingabe = "OK"; 
02.
	while ((Eingabe.equals("-1")) ) 
03.
04.
		System.out.println("Treffen Sie ihre Auswahl (1, 2 oder 3). Exit -1:"); 
05.
		Eingabe = scan.nextLine(); 
06.
 
07.
		 
08.
			 
09.
		if (test.pruefen(Eingabe)) 
10.
			System.out.println("Richtig"); 
11.
		else 
12.
			System.out.println("Falsch"); 
13.
	}
Funktioniert auch soweit, nur das ich ungleich an stelle es equels bräuchte.
Hatte es mit != versucht, aber das will Java bei Strings leider nicht.

Hab ne lösung gefunden:
01.
boolean weiter = true; 
02.
while (weiter) 
03.
if (Eingabe.equals("-1")) 
04.
   weiter= false;
Bitte warten ..
Mitglied: 76109
05.08.2012, aktualisiert um 17:13 Uhr
Hallo Power-Poler!

Eventuell funktionierts auch mit:
01.
While (!Eingabe.equals("-1"))
Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Windows Server
Exchangekonto prüfen, wie ?
gelöst Frage von deckerWindows Server3 Kommentare

Leider bin ich noch ziemlich Newbe in dem Bereich SBS 2011 mit Exchange 2010 und POPCon. Ich habe das ...

Windows 10
Auf Softwareupdates prüfen
gelöst Frage von honeybeeWindows 104 Kommentare

Hallo, mit welchem Tool kann man auf dem Rechner prüfen, welche installierte Software veraltet ist und aktualisiert werden soll?

Batch & Shell
Excel Prüfen
Frage von michi-ffmBatch & Shell

Hallo Zusammen, komme leider nicht weiter und hoffe jemand hat eine Idee. Ich habe ein Skript das wunderbar funktionierte, ...

Batch & Shell
Nach Webseite prüfen
gelöst Frage von CerauxBatch & Shell3 Kommentare

Wie kann man mit Batch prüfen ob eine Datei auf einer Homepage ist? Mein Beispiel (funktioniert leider nicht): echo ...

Neue Wissensbeiträge
Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 14 StundenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 15 StundenSicherheit10 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 16 StundenSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 16 StundenSicherheit12 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Heiß diskutierte Inhalte
Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1031 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell29 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen21 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...