reguläre Audrücke verbinden

struppi79

Mitglied
Hallo:)
schon wieder ich. Ich will einen String nach Regulären Ausdrücken filter, es dürfen nur Zahlen drinnen stehen, das habe ich gelöst mit

Java:
menge.matches("[^0-9])

nur leider stürzt mein Programm ab wenn der Benutzer die Zahl 1,2 eingibt .....
 

XHelp

Top Contributor
1. Ist das von der Syntax falsch, da die Anführungszeichen nicht geschlossen werden
2. Damit prüfst du nicht, ob es aus Zahlen besteht, sondern nur ob es in dem String ein Zeichen steckt, welcher keine Ziffer ist.
 

struppi79

Mitglied
Entschuldigung
also: ja ich prüfe ob im String was anderes als eine Ziffer steht, dann gibts eine Fehlermeldung.
Da ich kurze Zeit später den String ein eine Int Variable umwandle sollte im String auch nur eine Zahl stehen. soweit werden alle Nicht Zahlen abgefangen, nur leider klappt das nicht wenn der User 1,2 oder 1.2 eingibt :-(
Besser?
 

XHelp

Top Contributor
match überprüft den ganzen String. D.h. du prüfst ob dein String aus einem "nicht-Ziffer-Zeichen" besteht.
Und darüber hinaus: nehmen wir mal "1.2" als Beispiel. Welche Arten von Zeichen erkennst du da? 2 Ziffern und ein Punkt.
Edit: aber tfa hat recht: formuliere erstmal eine konkrete Fehlerbeschreibung.
 

struppi79

Mitglied
mei seid Ihr wieder Konstruktiv,
ist doch logisch, wenn er ne Eingabe von 1,2 nicht rausfiltert kann ich 1,2 auch nicht in eine Int Variable umwandeln, ...
Nur Was muss ich in die Regex schreiben dass auch 1,2 und 1.2 herausgefiltert werden ??

Java:
java.lang.NumberFormatException: For input string: "1,2"
 

XHelp

Top Contributor
Ist auch logisch, dass wenn du prüfen willst, ob in einem String nur Ziffern vorhanden sind, dass du dann sowas wie
Code:
matches("\\d+")
nimmst. Aber wir sollen mitdenken und erraten was du meinst und die dein Code aussieht? :bahnhof:
 

struppi79

Mitglied
ok sorry
so schaut die betreffende Stelle aus.

Java:
for (int i=0; i<artikel2.length; i++){  
  if (menge[i].matches("[^0-9]")){
  out.print ("<h2>Sie haben ein ung&uuml;ltiges Zeichen eingegeben. <br/>Bitte korrigiern Sie die Eingabe</h2>");
  }else{
		for (int j=0; j<artikel2.length; j++){
			int test = Integer.parseInt(menge[j]);
 

tfa

Top Contributor
Aha, dein Programm stürzt gar nicht ab, sondern es gibt eine NumberFormatException, sag das doch!
Ich glaube auch, deine Regex ist falsch. Du musst erstmal herausfinden, wie die für deine Zwecke aussehen muss.

Java:
		String s = "1,2";
		
		if (s.matches("[^0-9]")) {
			System.out.println("ja");
		}
		else {
			System.out.println("nein");
		}
 

XHelp

Top Contributor
Du prüfst den i-ten String in einer Schleife, und wenn es gültig ist, dann wandest du in einer inneren Schleife alle String um? hÄ?
Java:
for (int i=0; i<artikel2.length; i++){  
  if (menge[i].matches("[^0-9]")){
    out.print ("<h2>Sie haben ein ung&uuml;ltiges Zeichen eingegeben. <br/>Bitte korrigiern Sie die Eingabe</h2>");
  }else{
    //mach was nur mit dem Zeichen, welches du überprüft hast
    int test = Integer.parseInt(menge[i]);
So macht das mehr Sinn.
Und warum eigentlich eine Schleife über artikel2-Länge, aber Arbeit mit menge-Array? :bahnhof:
 

struppi79

Mitglied
ja weil sonst , sollte jemand eine nicht ziffer eingeben
die Fehlermeldung sooft dasteht wie die schleife durchlaufen wird deswegen der ungünstige Aufbau

aber egal, ich wollte ja nur wissen wie ich die regex so aufbaue dass sie nur zahlen durchlässt
danke trotzdem
 

XHelp

Top Contributor
Das ist aber falsch was du machst unabhängig davon was du willst. Wenn du es nur einmalig machen willst, dann mach sowas wie:
Java:
boolean isValid = true;
for (String currentAmount: menge) {
  if (!currentAmount.maches("\\d+")) {
    isValid = false;
    break;
  }
}
if (isValid) {
  //mach was immer du willst
} else  {
  //zeige die Fehlermeldung an
}

Oder du machst eine ähnliche geschichte mit dem boolean-Flag, nur dass du direkt die korrekten Werte verarbeitest:
Java:
boolean isValid = true;
for (String currentAmount: menge) {
  if (currentAmount.maches("\\d+")) {
    //mach was damit
  } else {
    isValid = false;
  }
}
if (!isValid) {
  //zeige die Fehlermeldung an
}
 

XHelp

Top Contributor
Doch tut es. Aber da wären wir wieder bei: was genau willst du denn haben?
Und du hast hoffentlich bedacht, dass
Code:
\\d+
Zahlen sucht, wo hingegen
Code:
[^0-9]
auf eine komische Art und Weise versucht Fehler zu suchen.
 

struppi79

Mitglied
hm ok
ich würde es jetzt so machen, nur spinnt der tomcat jetzt wegen meiner Klammerung :-(

Java:
for (int i=0; i<artikel2.length; i++){
	if (menge[i].matches("\\d+")){
	int test = Integer.parseInt(menge[i]);
		if (test>0 && test<151){ 
		String bestellung = station2 +"  " +test  +" x " +artikel2[i] +"\r\n"; 
		out.print("<tr> <td>" +station2 +"</td><td>" +test  +"</td><td>" +artikel2[i] +"</td></tr>");
			
		final String DATEI="/var/www/intern/jspfiles/Bestellung_Aigner.txt";   //in csv-Datei schreiben
     
		FileWriter fw=new FileWriter(DATEI,true);
		BufferedWriter bw=new BufferedWriter(fw);
     
		bw.write(bestellung);
		bw.newLine();
     
		bw.close();
		fw.close();}
			else{			
			out.print("<h3>Bitte korrigieren Sie die Bestellmenge!</h3>");}
				else{ 
				out.print ("<h2>Sie haben ein ung&uuml;ltiges Zeichen eingegeben. <br/>Bitte korrigiern Sie die Eingabe</h2>");
				out.print ("<h2>Hier haben Sie ein ungültiges Zeichen eingegeben:"+station2+"  "+artikel2+"  "+menge);}
		}
	}
}
 

XHelp

Top Contributor
Das hat rein gar nichts mit tomcat zu tun. Du hast schlicht eine geschweifte Klammer zu viel. Wo diese zu viel ist erkennst du, wenn du deinen Code sinnvoll einrückst und auch die schließenden Klammer in eine extra Zeile machst
 

struppi79

Mitglied
Hallo danke
ich habe den fehler gestern schon gefunden und behoben,
ja Einrückung .... da sollte ich mal daran arbeiten .
Danke und grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
W Reguläre Ausdrücke Java Basics - Anfänger-Themen 1
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
K FYI: Reguläre Ausdrücke nutzen ja/nein Java Basics - Anfänger-Themen 2
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
P Reguläre Ausdrücke und Korrektheit Java Basics - Anfänger-Themen 2
0 Reguläre Ausdrücke bzw. Zahlenformat im String Java Basics - Anfänger-Themen 7
G Reguläre Ausdrücke Zeichenketten Java Basics - Anfänger-Themen 12
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
C Reguläre-Ausdrücke Java Basics - Anfänger-Themen 5
J reguläre Ausdrücke Java Basics - Anfänger-Themen 1
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
B Java - Reguläre Ausdrücke - RegEx oder Regular Expressions - Eckige Klammern Java Basics - Anfänger-Themen 2
H Erste Schritte Von jpg zu jpeg // reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
B Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
K Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
C Reguläre Ausdrücke: string.matches() und gefangene Gruppen Java Basics - Anfänger-Themen 12
S Reguläre Ausdrücke richtig einsetzten Java Basics - Anfänger-Themen 5
T Reguläre Ausdrücke Java Basics - Anfänger-Themen 18
0 Reguläre Ausdrücke und Funktionen Java Basics - Anfänger-Themen 2
D Reguläre Ausdrücke Java Basics - Anfänger-Themen 3
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 16
A Reguläre Ausdrücke Frage Java Basics - Anfänger-Themen 3
N reguläre ausdruech und exception Probleme Java Basics - Anfänger-Themen 7
E Reguläre Ausdrücke mit sehr variablen Eigenschaften Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke - bekomme Suchkriterium nicht hin Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke in Java Java Basics - Anfänger-Themen 2
J Reguläre Ausdrücke Java Basics - Anfänger-Themen 6
S Strings und reguläre Ausdrücke Java Basics - Anfänger-Themen 2
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 4
S Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
M Reguläre ausdrücke? Java Basics - Anfänger-Themen 8
D Reguläre Ausdrücke: Anzahl Wiederholungen als Variable? Java Basics - Anfänger-Themen 3
A Reguläre Ausdrücke Java Basics - Anfänger-Themen 2
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
M Reguläre Ausdrücke - maskieren von Zeichen? Java Basics - Anfänger-Themen 9
M Reguläre Ausdrücke und Ausgabe Java Basics - Anfänger-Themen 10
K Reguläre Ausdrücke - Gefundene Tokens direkt ermitteln Java Basics - Anfänger-Themen 3
J Reguläre Ausdrücke: Zeichenfolge ausschließen Java Basics - Anfänger-Themen 2
G Reguläre Ausdrücke Java Basics - Anfänger-Themen 13
L java und reguläre ausdrücke Java Basics - Anfänger-Themen 4
G Reguläre Ausdrücke zum Filtern von logfiles Java Basics - Anfänger-Themen 2
T Reguläre Ausdrücke? Java Basics - Anfänger-Themen 3
E Reguläre Ausdrücke Java Basics - Anfänger-Themen 17
O reguläre Ausdrücke bei java.util.regex.Pattern Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke der Pfade unter Windows und Unix Java Basics - Anfänger-Themen 3
N Reguläre Ausdrücke Java Basics - Anfänger-Themen 5
G Problem reguläre Ausdrücke Java Basics - Anfänger-Themen 4
A Reguläre Ausdrücke: Inhalt zwischen zwei Schlüsselwörtern Java Basics - Anfänger-Themen 2
A Reguläre Ausdrücke: Problem mit Backslash Java Basics - Anfänger-Themen 3
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
B GUI extension mit einer Liste verbinden Java Basics - Anfänger-Themen 1
T Access mit Java verbinden im netzwerk Java Basics - Anfänger-Themen 3
S Java mit SQLite Verbinden Java Basics - Anfänger-Themen 16
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
AppGuruCode962 Button mit Textfield verbinden Java Basics - Anfänger-Themen 13
F 2 Polygone verbinden Java Basics - Anfänger-Themen 4
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
R TreeSelectionEvent mit rechtem splitPane verbinden Java Basics - Anfänger-Themen 1
L Klassen verbinden Java Basics - Anfänger-Themen 10
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
K [Schnittstelle] JavaProject mit Arduino verbinden Java Basics - Anfänger-Themen 5
N Datenbank mit GUI verbinden - Wie? Java Basics - Anfänger-Themen 5
F OOP Klassen miteinander verbinden Java Basics - Anfänger-Themen 12
GadgetSofa jComboBox mit dem Button verbinden. Aber wie?? Java Basics - Anfänger-Themen 4
B Datei mit String verbinden und speichern Java Basics - Anfänger-Themen 3
S Frames Verbinden Java Basics - Anfänger-Themen 19
U Glassfish mit MySQL verbinden Java Basics - Anfänger-Themen 1
J 2 String Arrays in neuem String Array verbinden Java Basics - Anfänger-Themen 4
J Punkte im Java-Applet verbinden Java Basics - Anfänger-Themen 4
D String-Arrays miteinander verbinden Java Basics - Anfänger-Themen 5
M Methoden miteinander verbinden (Laufzeit) Java Basics - Anfänger-Themen 6
M Array verbinden, mit und ohne new Java Basics - Anfänger-Themen 2
H Erste Schritte Mit Proxyserver verbinden Java Basics - Anfänger-Themen 5
S Best Practice Boolean mit IF verbinden Java Basics - Anfänger-Themen 7
G Zwei Aufgabenbereiche verbinden Java Basics - Anfänger-Themen 5
J GUI mit phpMyAdmin Datenbank verbinden Java Basics - Anfänger-Themen 0
S überschneidende Char-Arrays, zu einem Längeren verbinden Java Basics - Anfänger-Themen 7
ScottGambler Zwei Methoden verbinden? Java Basics - Anfänger-Themen 16
L OOP Buttons mit Pfeilen miteinander verbinden Java Basics - Anfänger-Themen 5
R Erste Schritte Bausteine mit Pfaden verbinden Java Basics - Anfänger-Themen 2
J Zellen verbinden in JTable Ueberschrift Java Basics - Anfänger-Themen 3
M Klassen verbinden Java Basics - Anfänger-Themen 4
M Klassen verbinden Java Basics - Anfänger-Themen 2
F Klassen Klassen miteinander Verbinden Java Basics - Anfänger-Themen 19
H OOP Mehrere Klassen 'verbinden'? Java Basics - Anfänger-Themen 4
N Erste Schritte jFrames verbinden Java Basics - Anfänger-Themen 6
M String mit String verbinden Java Basics - Anfänger-Themen 4
D Compiler-Fehler Frames verbinden Java Basics - Anfänger-Themen 6
C Listen verbinden Java Basics - Anfänger-Themen 6
B Arrays sortiert verbinden Java Basics - Anfänger-Themen 7
J 2 Threads mit Pipe verbinden Java Basics - Anfänger-Themen 4
D Klassen verbinden (Referenzattribute) Java Basics - Anfänger-Themen 2
S Infos aus mehreren JVMS verbinden Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben