Frage zu parseInt und Schleifen

Katzehuhn

Erfahrenes Mitglied
Hi, ich hab dieses Problem:
Ich hab diese Schleife, die ein Array durchläuft.
Das z_ary ist vom Typ String[] und hat diesen Inhalt "9|12|12".
Also 3 Zahlen die von | getrennt werden.

In dieser Schleife werden sie nun aufgesplittet und im Array zw_speicher gespeichert.
Code:
for(int i = 0; i < z_ary.length;i++){
                 zw_speicher = z_ary[i].split("|",3);
                 int test1 = Integer.parseInt(zw_speicher[0]);
                 g.drawString("test" , 6, 55); 
//nun wird gar nix angezeigt, wenn ich obere Zeile weglasse jedoch schon
}
Wenn ich nun die gesplitteten Werte in Integer umwandeln will, wird genau nix angezeigt.
Jemand eine Ahnung was ich falsch mache?
Danke
 
Die Doku zu String.split(String, int) sagt:
Splits this string around matches of the given regular expression.

Bei der Doku zu den Regulären Ausdrücken findest du folgendes:
Logical operators
XY X followed by Y
X|Y Either X or Y
(X) X, as a capturing group

Sprich: Das | welches du angegeben hast wurde nicht als Zeichen an sich, sondern als ein logisches Oder interpretiert. Daher bekamst du keine Ergebnisse.

So gehts:
Java:
String [] z_ary = new String[]{"9|12|12"};
for(int i = 0; i < z_ary.length;i++){
	String [] zw_speicher = z_ary[i].split("\\|",3);
	try{
		int test1 = Integer.parseInt(zw_speicher[0]);
		System.out.println(test1);
	}catch(NumberFormatException e){
		e.printStackTrace( );
	}
}

Versuche beim nächsten mal wenn so etwas auftritt einfach mal in Zeile 5 einen Breakpoint zu setzen, dann kannst du dir anschauen was im zw_speicher Array drin steht und hättest gesehen warum dein Code nicht funktionieren konnte :)

Eine Meldung warum es nicht ging hast du nicht bekommen, weil du versucht hast Integer.parseInt("") auszuführen was zur Exception geführt hat. Daher beim parsen von Zahlen nach Möglichkeit das try-catch mit nutzen.
 
Zuletzt bearbeitet:
Ah ok funktioniert jetzt, das Problem war das erst nach der Funktion parseInt, nichts mehr angezeigt wurde. Als ich das nicht gmacht hab, standen da ja die richtigen Zahlen drinnen. Naja hauptsache das geht, danke, erledigt!
 
Zurück