Sting.split() was mache ich falsch?

Status
Nicht offen für weitere Antworten.

raven

Bekanntes Mitglied
Code:
"message_all" könnte z.B. so aussehen ...
message_all = "100,150,200,310;120,170,210,110;"

Code:
String player_info[] = message_all.split(";");
for(int a = 0; a < player_info.length; a++) {
	String player_detail[] = player_info[a].split(",");
	int[] player_int = new int[player_detail.length];
	for(int b = 0; b < player_detail.length; b++) {
		player_int[b] = Integer.parseInt(player_detail[b]);
	}
	player.paint(g2d, player_int[0], player_int[1], player_int[2], player_int[3]);
}

ich bekomme aber bei diesem Code immer eine java.lang.NumberFormatException was ist daran falsch...
 
S

Spacerat

Gast
Hmmm...

Auf den ersten Blick sehe ich nichts falsches...

Las' dir mal bevor "Integer.parseInt()" die Strings auf die Konsole ausgeben. Möglicherweise sind da noch die Trennzeichen ("," & ";") drin. Wenn dem so ist, versuch mal diese zu entfernen.

mfg Spacerat
 

raven

Bekanntes Mitglied
String player_info[] = client.message_all.split(";");
for(int a = 0; a < player_info.length; a++) {
String player_detail[] = player_info[a].split(",");
int[] player_int = new int[player_detail.length];
for(int b = 0; b < player_detail.length; b++) {
System.out.println(player_detail);
// player_int = Integer.parseInt(player_detail);
}
// player.paint(g2d, player_int[0], player_int[1], player_int[2], player_int[3]);
}

hab die jetzt ma ausgeben lassen, bevor ich parse... werden aber nur Zahlen ausgegeben...
 

Murray

Top Contributor
Also bei mir läuft dieser Code durch:
Code:
public class T {
	public static void main( String[] args) throws Exception {
		String message_all = "100,150,200,310;120,170,210,110;";
		String player_info[] = message_all.split(";");
		for(int a = 0; a < player_info.length; a++) {
			System.out.println( "player_info[" + a + "]: <" + player_info[a] + ">");
			String player_detail[] = player_info[a].split(",");
			int[] player_int = new int[player_detail.length];
			for(int b = 0; b < player_detail.length; b++) {
				System.out.println( "player_detail[" + a + ";" + b + "]: <" + player_detail[b] + ">");
				player_int[b] = Integer.parseInt(player_detail[b]);
			}
		}
	}
}

Vielleicht liegt der Fehler doch woanders?
 

raven

Bekanntes Mitglied
ja vllt hast du recht... die Exception wird ja am Anfang nur einmal geworfen...
und ich habe so eben beobachtet, das der String am Anfang kur so aussieht
Code:
100,150;210,110;

stattt so

Code:
100,150,200,310;120,170,210,110;

das könnte durchaus ein auslöser sein... oder nicht?
ich weiß aber noch nicht warum der am anfang 4 Zahlen weniger hat, wird wohl an de Netzwerkübertragung liegen, weil ich den String ja zuerst vom Server übermittelt bekomm...

Und noch ne Frage. Ist das schlimm, wenn am anfangn nur Einmal ein exception geworfen wird... udn danach nicht mehr...
Ich mein, es wäre doch schlimmer, wenn andauernd eine geworfen wird... weil es dadurch langsamer wird...
 
S

Spacerat

Gast
Tja...

Der obenstehende Code läuft mit deinen beiden Zahlenreihen und mit von mir getesteten. Allerdings: Die letzten Semikolons müssen Wech! sonst gibts zur Belohnung diese NumberFormatException für einen Leer-String. Zumindest lt. Quelltext:
Code:
// Relevante Auszüge aus Integer.parseInt()
// s ist das String-Argument
int result = 0;
boolean negative = false;
int i = 0, max = s.length();
int limit;
int multmin;
int digit;

if (max > 0) {
  //...String nach Integer...
} else {
  throw NumberFormatException.forInputString(s);
  //...Na das ist ja kein Wunder...
  //Ein Leer-String wird mit einer Leer-Exception beantwortet.
  //fröhliches Fehlersuchen... sag' ich mal.
}

Abhilfe: vor den beiden "for"-Schleifen und vorallem vor "Integer.parseInt()" auf Leer-String prüfen.

Fazit: Wir haben was gelernt! Und zwar, was eine NumberFormatException ohne weitere Ausgabe bedeutet. Gut zu wissen... :toll:

mfg Spacerat
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Sting To ByteArray und zurück Allgemeine Java-Themen 5
B Sting eines COM einlesen Allgemeine Java-Themen 2
SaschaMeyer Arbeitet String.split falsch? Allgemeine Java-Themen 4
R Variablen String mit split-Funktion aufteilen Allgemeine Java-Themen 7
T Split() Methode funktioniert nicht?! Allgemeine Java-Themen 11
S Variablen split-Funkton mit zwei Variabeln verwenden? Allgemeine Java-Themen 4
OnDemand String Split Pipe Allgemeine Java-Themen 2
S String split mit spez. Regexp Allgemeine Java-Themen 2
L Split String Level 100 Allgemeine Java-Themen 2
K String split Methode Allgemeine Java-Themen 20
Y Kleine Frage zu String.split Allgemeine Java-Themen 3
M split("("); Problem Allgemeine Java-Themen 4
A String.split() funktioniert nicht richtig Allgemeine Java-Themen 4
Q String Split() Allgemeine Java-Themen 46
AMStyles Split bei hälfte Allgemeine Java-Themen 3
O split mit einem ODER mehrere Tabulatoren oder Leerzeichen Allgemeine Java-Themen 6
A Split, Scanner, StringTokenizer oder PatternMatching für flexibles Dateieinlesen? Allgemeine Java-Themen 2
S indize statt split() Allgemeine Java-Themen 10
D String split() ist unlogisch Allgemeine Java-Themen 12
V Problem mit der String.split() Allgemeine Java-Themen 3
G Split mit ; und " Allgemeine Java-Themen 4
Daniel_L Frage zu split() und dem Trennzeichen. Allgemeine Java-Themen 10
C String split Allgemeine Java-Themen 3
GilbertGrape Frage zu split Allgemeine Java-Themen 2
C "/" in String.split()-->Illegal escapesequence Allgemeine Java-Themen 5
G split() mit komma/punkt funktioniert nicht Allgemeine Java-Themen 16
W string.split("") warum funzt des net? Allgemeine Java-Themen 5
T String.split() - viel zu langsam Allgemeine Java-Themen 9
G Split String Array bringt Fehlermeldung Allgemeine Java-Themen 7
P split() und ich versteh die Welt nicht Allgemeine Java-Themen 2
O Split methode tut bei Zeichen "\", "\\" Allgemeine Java-Themen 7
foobar Split Int Allgemeine Java-Themen 4
R String.split - ich steh auf dem Schlauch. Allgemeine Java-Themen 3
V Probleme mit String.Split :/ Allgemeine Java-Themen 2
I Split aus "JBuilder 2005" Allgemeine Java-Themen 15
B String.split() --- Java1.3 Allgemeine Java-Themen 10
K String.split nachbauen Allgemeine Java-Themen 7
P String.split will nicht Allgemeine Java-Themen 3
N Split -> IF-String vergleich Allgemeine Java-Themen 5
S Seltsames Verhalten von split() Allgemeine Java-Themen 3
P string.split() & RegEx Allgemeine Java-Themen 3
G Alternative zu split() Allgemeine Java-Themen 3
A Split() - Methode und java.util.regex.* Allgemeine Java-Themen 2
M Pattern, Matcher, Split Allgemeine Java-Themen 2
D split(".") funktioniert net Allgemeine Java-Themen 3
berserkerdq2 Wie mache ich den rekursiven Aufruf in IJVM Allgemeine Java-Themen 3
berserkerdq2 Wie mache ich in IJVM eine if verzweigung? Allgemeine Java-Themen 27
N Wie mache ich einen UnitTest? Allgemeine Java-Themen 16
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
Thallius Wie mache ich eine Java App mit Icon startbar die mehr Heap Speicher braucht? Allgemeine Java-Themen 3
J Wie mache ich den Hintergrund einer Image durchsichtig? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben