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

gelöst Prüfen auf -1 funktioniert nicht

Mitglied: Power-Poler

Power-Poler (Level 1) - Jetzt verbinden

05.08.2012 um 13:26 Uhr, 3603 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
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 48 MinutenHumor (lol)

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 9 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 22 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit14 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless14 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...