Zahlen aus (String mit zahlen) immer wieder neu auslesen

Stinkybrain

Mitglied
Hallo ich habe ein Textfield wo ein Benutzer per drag'n drop zb.: einen String reinziehen kann.

Danach vergibt er einen Double wert für diesn String der per Entertaste eingelesen wird.
Dieses klappt auch ganz gut mit mehr als einer zahl.

Mein problem ist jetzt wenn ich einen Wert wieder lösche (von hand)
dann ist dieser aber noch gespeichert.

Wie kann ich jedesmal dieses TextField neu auslesen??
Java:
public class ZahlenHandler implements KeyListener{

		@Override
		public void keyPressed(KeyEvent ea) {
			 if (ea.getKeyCode()== KeyEvent.VK_ENTER){			
				 k = taHead.getText();                              // taHead = textfield k = String
				 pHead = Pattern.compile("[+-]?[0-9 .]+");   
				 mHead = pHead.matcher(k);
				 while (mHead.find()){
					 sgHeadweight = k.substring(mHead.start(),mHead.end());
			     }// end while
				 kopfergebnis = sgHeadweight.split(" "); 	 // kopfergebinis ist ein String[]
			     for(int x = 0; x < kopfergebnis.length; x++){   
			    	    headweight = headweight + Double.parseDouble(kopfergebnis[x]);         
			     }// end for 
					 System.out.println(headweight +" Gew");	
	             
				 
			 }
		}

		@Override
		public void keyReleased(KeyEvent ea) {				
		}
		@Override
		public void keyTyped(KeyEvent ea) {	
		}
	
	} // ZahlenHandler
 
Zuletzt bearbeitet:

eMmiE

Bekanntes Mitglied
Also:

Du hast in einem TextField einen String, der da irgendwie reinkommt.
Dieser String besteht aus Zahlen und die sollen dann zu einer Double geparst werden...?

Könntest du evtl. nochmal deinen Code genauer dokumentieren, so kann ich nicht viel erkennen ;)

"headWeight" == ?

Gruß eMmiE
 

Stinkybrain

Mitglied
headweight soll einen Wert speichern.

das mit Double klappt doch nicht.Bin wieder auf integer umgestiegen.

Im TextFeld Steht dann z.b.: abgenutzer Motoradhelm | 4 == Wert den der benuzer eingibt
mit Enter wird dann bestätigt und dieser Wert wird dann ausgelesen.

bei 2 sachen z.b abgenutze Kappe | 1
verstärkter Kevlarhelm | 3
== Wert 4

Wenn ich jetzt aber einen Wert wieder lösche und dann Enter drücke nimmt er den letzten
eingegebenden Wert und löscht ihn nicht .
Also müssten die Werte immer wieder eingelesen werden.
nur Wie????


Java:
    public class ZahlenHandler implements KeyListener{
     
            @Override
            public void keyPressed(KeyEvent ea) {
                 if (ea.getKeyCode()== KeyEvent.VK_ENTER){         
                     k = taHead.getText();                              // taHead = textfield k = String
                     pHead = Pattern.compile("[+-]?[0-9 .]+");  
                     mHead = pHead.matcher(k);
                     while (mHead.find()){
                         sgHeadweight = k.substring(mHead.start(),mHead.end());
                     }// end while
                     kopfergebnis = sgHeadweight.split(" ");     // kopfergebinis ist ein String[]
                     for(int x = 0; x < kopfergebnis.length; x++){  
                            headweight = headweight + Integer.parseInt(kopfergebnis[x]);  // headweight  soll einfach den Wert Speichern    
                     }// end for
                         System.out.println(headweight +" Gew");   
                     
                     
                 }
            }
     
            @Override
            public void keyReleased(KeyEvent ea) {             
            }
            @Override
            public void keyTyped(KeyEvent ea) {
            }
       
        } // ZahlenHandler
 
Zuletzt bearbeitet:

Stinkybrain

Mitglied
Was ich damit Meine ist das Das TextFeld immer wieder von vorne Eingelesen werden soll.
was ich meine ist das wenn 3 Werte drinstehen nur diese 3 ausgelesen werden.

wenn ich dann eins lösche das dann eben nur noch 2 eingelesen werden sollen

wenn ich dann wieder eins hinzufüge dann sollen eben wieder 3 Werte eingelesen werden usw.

habe es schon damit versucht das ich die Variable (headweight) am Ende auf 0 setze

aber dann fügt er immer nur eine Zahl die ich gerade geschrieben habe ein.


bin am verzweifeln.

Danke schon mal für die Hilfe..
 

Harry Kane

Top Contributor
Ich habe gerade mal etwas mit deinem Codeschnipsel gespielt.
Ergebnis:
1. Mit deinem Pattern werden sowohl reine Leerzeichen ziwschen Chars als auch Leerzeichen vor einem Digit gefunden. Im ersten Fall enthält das Array, was durch splitten am " " entsteht, gar keinen zu int parsebaren String, im zweiten Fall schon, allerdings erst an der Position 1. Position 0 enthält einen Leerstring, der natürlich nicht zu einem int geparst werden kann. Wenn du in Zeile 13 bis 15 über das Array drübergehst, muss eigentlich eine NumberFormatException fliegen. Mir ist ehrlich gesagt schleierhaft, wie du ohne exception handling überhaupt etwas sinnvolles aus deiner text area auslesen konntest.

2. Nach Korrektur des o.g. bugs: Natürlich erhältst du nur die letzte Zahl, da nach durchlaufen des while-loops in Zeile 9-11 aus deinem Code nur der letzte match gespeichert wurde!

Ich hoffe dieser Schnipsel ist hilfreich:
Java:
import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {
    public static void main(String[] args){
        String text = "abgenutze Kappe | 1 helm | 4 lederweste | 2";
        Pattern pHead = Pattern.compile("[+-]?[0-9 .]+");
        Matcher mHead = pHead.matcher(text);
        String sgHeadweight = "";
        String[] kopfergebnis = new String[0];
        int headweight = 0;
        int loop = 0;
        while(mHead.find()){
            sgHeadweight = text.substring(mHead.start(),mHead.end());
            System.out.println("Current head weight '" + sgHeadweight + "' for loop " +loop);
            System.out.println("Indices from " + mHead.start() + " to " + mHead.end());
            loop++;
        }
        kopfergebnis = sgHeadweight.split(" ");
        System.out.println("Kopfergebnis: " + Arrays.toString(kopfergebnis));
        for(int x = 1; x < kopfergebnis.length; x++){//mit 0 als Startwert: NumberFormatException!
            System.out.println("Current x " + x);
            headweight = headweight + Integer.parseInt(kopfergebnis[x]);  // headweight soll einfach den Wert Speichern    
        }// end for
        System.out.println(headweight +" Gew");
        //2. Versuch
        pHead = Pattern.compile("[+-]?[0-9]+");
        mHead = pHead.matcher(text);
        headweight = 0;
        while(mHead.find()){
            sgHeadweight = text.substring(mHead.start(),mHead.end());
            System.out.println("Current head weight '" + sgHeadweight + "' for loop " +loop);
            System.out.println("Indices from " + mHead.start() + " to " +mHead.end());
            loop++;
            try{
                int w = Integer.parseInt(sgHeadweight);
                headweight += w;
            }
            catch(NumberFormatException nfe){
                nfe.printStackTrace();
            }
        }
        System.out.println(headweight +" Gew, 2. Versuch");
    }
}
 
Zuletzt bearbeitet:

Stinkybrain

Mitglied
Danke!!!!!!!
der Versuch2 hat mir sehr weiter geholfen obwohl ich keine NumberFormatException mit try
umgangen habe. Bei mir klappt es ganz gut.

habe es jetzt Ordentlich getestet und es ist kein mal abgestürzt.
Muss es natürlich noch auf anderen rechner testen. (meiner ist irgendwie komisch:) )

Java:
public class ZahlenHandler implements KeyListener{

		@Override
		public void keyPressed(KeyEvent ea) {
	
			 if (ea.getKeyCode()== KeyEvent.VK_ENTER){			 
				 k = taHead.getText();                    // k im programmkopf initialisiert
				 pHead = Pattern.compile("[+-]?[\\d*]+"); // pHead im programmkopf initialisiert
				 mHead = pHead.matcher(k);                // mHead im programmkopf initialisiert
				 headweight = 0;
				 while (mHead.find()){
					 sgHeadweight = k.substring(mHead.start(),mHead.end());  //sgHeadweight im programmkopf initialisiert
				     kopfergebnis = sgHeadweight.split(" ");	             // kopfergebnis im programmkopf initialisiert
			         for(int x = 0; x < kopfergebnis.length; x++){   	
			    	    headweight +=  Integer.parseInt(kopfergebnis[x]);
			    	    spVer.setValue(new Integer(headweight ));  // dies ist um ein JSpinner zu setzen
			        }// end for	    
			     }// end while	    
			       System.out.println(headweight +" Gew");  // dieses ist nicht wichtig war nur zur überprüfung
	
			 }
		}


Danke nochmals!!!!
Werde Morgen mal versuchen das dieses auch mit double geht.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
A String auf Zahlen überprüfen Allgemeine Java-Themen 5
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
L 2-Dimensionaler String: Zahlen verschieben Allgemeine Java-Themen 10
AssELAss String mit Zahlen mit Tausendertrennzeichen versehen Allgemeine Java-Themen 14
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
H String auf Zahlen prüfen Allgemeine Java-Themen 4
C double Zahlen mit drei NachkommaStellen in String umwandeln Allgemeine Java-Themen 2
O String auf zahlen prüfen (java 1.3) Allgemeine Java-Themen 4
berserkerdq2 Versteht jemand, was diese beiden Zahlen bei dem IJVM Code zu bedeuten haben? Allgemeine Java-Themen 10
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
A Potenzmenge der Zahlen von 1 bis n Allgemeine Java-Themen 20
G Java Editor Löschen doppelter Zahlen einer Liste Allgemeine Java-Themen 2
J Zahlen Abstand zur Null bestimmen Allgemeine Java-Themen 11
R Methoden Was fehlt mir bzw. muss ich bei der Methode countHarshabNumbers ändern damit ich die Harshad Zahlen im Intervall [51, 79] zählen kann? Allgemeine Java-Themen 19
O Variablen Addition von Double-Werten ergibt seltsame 0.9999999 Zahlen Allgemeine Java-Themen 2
B Zufällig zwischen vorgegebenen Zahlen auswählen Allgemeine Java-Themen 6
P Rechnen mit sehr kleinen Zahlen Allgemeine Java-Themen 5
M Zahlen in Array anordnen Allgemeine Java-Themen 8
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
T Tesseract OCR mit Zahlen Allgemeine Java-Themen 1
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
F Zahlen zu Bits Allgemeine Java-Themen 3
S Überprüfen, ob 5 Zahlen nebeneinander liegen Allgemeine Java-Themen 5
R Große Zahlen in Worten abkürzen Allgemeine Java-Themen 10
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
D Operatoren Logischer Rightshift von negativen Zahlen auf Bit-Ebene Allgemeine Java-Themen 7
M Algorithmus zum Zahlen einteilen Allgemeine Java-Themen 8
H Fibonacci-Zahlen Allgemeine Java-Themen 5
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
E mit extrem langen Zahlen (als Zeichneketten) arbeiten Allgemeine Java-Themen 4
M Probleme beim rechnen, bei Zahlen mit führenden Nullen. Allgemeine Java-Themen 7
L Filewriter schreibt Zahlen in Textdatei Allgemeine Java-Themen 2
T Methoden Zahlen austauschen Allgemeine Java-Themen 8
Z Zahlen aus Bild auslesen Allgemeine Java-Themen 1
M ungerade zahlen auf 4 zahlen aufteilen Allgemeine Java-Themen 2
F Funktionsplotter komplexe Zahlen: geeignetes 3D-Koordinatensystem Allgemeine Java-Themen 16
B Zahlen ausgeben hilfe! Allgemeine Java-Themen 8
N Bin to Dez und umgekehrt mit sehr großen Zahlen Allgemeine Java-Themen 2
T Modulo-Operator versagt bei zu großen Zahlen? Allgemeine Java-Themen 14
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
U (Java) Happy Numbers in Anlehnung an den Sieb des Eratosthenes (Glueckliche Zahlen) Allgemeine Java-Themen 1
J Array ohne vorher festgelegte Länge oder Wie wandle ich Zahlen in Zahlen mit anderen Basen um? Allgemeine Java-Themen 6
Cayton Bruchrechner stürzt bei eingabe negativer Zahlen ab Allgemeine Java-Themen 4
N Zahl mit bestimmter Länge und nur bestimmten Zahlen generieren lassen Allgemeine Java-Themen 7
I Java-Programm: Zahlen in Worte Allgemeine Java-Themen 22
V iText Textfelder mit Zahlen! Allgemeine Java-Themen 2
M Rechnen mit kleinen Zahlen langsamer!? Allgemeine Java-Themen 11
R Modulo mit negativen Zahlen Allgemeine Java-Themen 8
Luk10 Römische Zahlen in Java Allgemeine Java-Themen 7
R Codehinweise: Algorithmus Größenvergleich von n Zahlen Allgemeine Java-Themen 5
GianaSisters ArrayList mit Zahlen Allgemeine Java-Themen 10
B User-Input aus Zahlen und Operatoren - beste Umsetzung? Allgemeine Java-Themen 8
S Fixe Zahlen vergleichen Allgemeine Java-Themen 4
D JTable -> 1Spalte nur zahlen Allgemeine Java-Themen 2
N Zahlen in Strings einer ArrayList sortieren Allgemeine Java-Themen 14
T Apache POI Export EXCEL - [Zahlen-Werte] Allgemeine Java-Themen 1
ModellbahnerTT Button mit Zahlen beschriften Allgemeine Java-Themen 1
J Zahlenkombination aus int-array, mit absteigenden Zahlen Allgemeine Java-Themen 6
P große double Zahlen und modulo Allgemeine Java-Themen 8
R Runden von Zahlen Allgemeine Java-Themen 3
J Zahlen Rechtsbuendig in File schreiben Allgemeine Java-Themen 3
W POI - Formatierung für Zahlen Allgemeine Java-Themen 4
MQue Zahlen mit Border Allgemeine Java-Themen 2
T ungerade zahlen berechnen Allgemeine Java-Themen 3
N Zahlen mit Nachkommastellen aus Textfeldern einlesen Allgemeine Java-Themen 6
P Algoritmus für 3er-Paare von n Zahlen Allgemeine Java-Themen 12
A Fibonacci-Zahlen & kopfgesteuerte Schleifen & Strukt Allgemeine Java-Themen 8
J Suche regex-Pattern fuer Liste von Zahlen zwischen 0-100 Allgemeine Java-Themen 6
G die mittlere von 5 Zahlen nur mit if und else finden Allgemeine Java-Themen 48
M Rechnen mit sehr kleinen Zahlen Allgemeine Java-Themen 8
MQue Zahlen an alysieren Allgemeine Java-Themen 6
ARadauer Random keine Zahlen doppelt Allgemeine Java-Themen 4
V FileWriter und Zahlen (Kein Problem, nur Verständnisfrage) Allgemeine Java-Themen 4
G Strings die Zahlen enthalten sinnvoll sortieren (A2 < A10 Allgemeine Java-Themen 4
F 3 Zahlen "vereinfachen" Allgemeine Java-Themen 5
A testen ob Primzahl dauert bei größeren zahlen extrem lange Allgemeine Java-Themen 8
E Hex- Zahlen in Datei Allgemeine Java-Themen 4
G Umrechnen von grossen Zahlen ins Hex-System Allgemeine Java-Themen 3
S Zahlen sortieren Allgemeine Java-Themen 3
D Zahlen innerhalb eines Strings auslesen Allgemeine Java-Themen 3
P rechnen mit extrem grossen zahlen Allgemeine Java-Themen 2
X Logische Operatoren auf binären Zahlen Allgemeine Java-Themen 2
F Array mit Zahlen drin sortieren Allgemeine Java-Themen 2
M Hilfe: Lotto: die 6 häufigsten generierten zahlen ausgeben Allgemeine Java-Themen 13
G Methode, die Buchstaben in Zahlen umwandelt? Allgemeine Java-Themen 13
S Integer-Zahlen in Excel-Sheet schreiben Allgemeine Java-Themen 10
M Lange Zahlen in Java Allgemeine Java-Themen 4
C zahlen einlesen Allgemeine Java-Themen 2
thE_29 Wie hex Zahlen darstellen Allgemeine Java-Themen 3
G Zahlen vergleichen Allgemeine Java-Themen 5
S Rechnen mit float Zahlen Allgemeine Java-Themen 2
H Kann keine Zahlen von Buchstaben unterscheiden Allgemeine Java-Themen 4
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
M String Allgemeine Java-Themen 10
M Suche nach String mit unbekannten characters Allgemeine Java-Themen 53
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12

Ähnliche Java Themen

Neue Themen


Oben