Hallo Zusammen,
ich habe folgendes Problem:
Die Aufgabenstellung ist, aus einer Datei eine Matrix einzulesen und zu überprüfen ob diese Matrix ein magisches Quadrat ist (wer nicht weiß was das ist; bei einem magischen Quadrat ergeben alle Zeilen, Spalten und Diagonalen die selbe Summe (n(n²+1)/2).. bei einem Quadrat (3x3) also 15.. Hinzu kommt, daß jede Zahl nur einmal vorkommen darf und keine Position leer sein darf.).
Die Überprüfung ist auch keinerlei Problem, sondern das einlesen. Ich hab 3 verschiedene Dateien, die ich darauf testen soll. Die Zahlen sind durch leerzeichen von einander getrennt. Damit diese auch schön übersichtlich sind in der Datei, können sie auch mal durch 2+ Leerzeichen getrennt sein..
Zum Beispiel:
(vor der 5 ist eigentlich auch ein Leerzeichen, scheint aber automatisch gekillt zu werden ^^).
Und genau das ist das Problem, ich muss die Leerzeichen loswerden und mit nur einem von einander trennen, damit ich die Werte mit split() in ein Array bekomme.
Nun zerbrech ich mir seit einer Stunde den Kopf.
Für die oben gepostete Beispieldatei klappt mein Algorithmus, aber nicht wenn mehr als 2 Leerzeichen zwischen den Zahlen oder am Anfang stehen. Ich hab`s mit regulären Ausdrücken versucht, mit ReplaceAll(), etc. Aber bisher keine immer funktionierende Lösung.
Weiß jemand Rat? (Wobei`s mich wundert, daß es keine Funktion gibt, die genau das macht (also, mehrfache Leerzeichen aus einem String killen.) oder war ich bloß blind in der API unterwegs? ^^).
Danke im Voraus für die Hilfe.
ich habe folgendes Problem:
Die Aufgabenstellung ist, aus einer Datei eine Matrix einzulesen und zu überprüfen ob diese Matrix ein magisches Quadrat ist (wer nicht weiß was das ist; bei einem magischen Quadrat ergeben alle Zeilen, Spalten und Diagonalen die selbe Summe (n(n²+1)/2).. bei einem Quadrat (3x3) also 15.. Hinzu kommt, daß jede Zahl nur einmal vorkommen darf und keine Position leer sein darf.).
Die Überprüfung ist auch keinerlei Problem, sondern das einlesen. Ich hab 3 verschiedene Dateien, die ich darauf testen soll. Die Zahlen sind durch leerzeichen von einander getrennt. Damit diese auch schön übersichtlich sind in der Datei, können sie auch mal durch 2+ Leerzeichen getrennt sein..
Zum Beispiel:
Code:
30 39 48 1 10 19 28
38 47 7 9 18 27 29
46 6 8 17 26 35 37
5 14 16 25 34 36 45
13 15 24 33 42 44 4
21 23 32 41 43 3 12
22 31 40 49 2 11 20
(vor der 5 ist eigentlich auch ein Leerzeichen, scheint aber automatisch gekillt zu werden ^^).
Und genau das ist das Problem, ich muss die Leerzeichen loswerden und mit nur einem von einander trennen, damit ich die Werte mit split() in ein Array bekomme.
Nun zerbrech ich mir seit einer Stunde den Kopf.
Für die oben gepostete Beispieldatei klappt mein Algorithmus, aber nicht wenn mehr als 2 Leerzeichen zwischen den Zahlen oder am Anfang stehen. Ich hab`s mit regulären Ausdrücken versucht, mit ReplaceAll(), etc. Aber bisher keine immer funktionierende Lösung.
Weiß jemand Rat? (Wobei`s mich wundert, daß es keine Funktion gibt, die genau das macht (also, mehrfache Leerzeichen aus einem String killen.) oder war ich bloß blind in der API unterwegs? ^^).
Danke im Voraus für die Hilfe.