Hallo Leute,
ich habe mal wieder ein Problem mit meinem Programm.
Ich habe ein zweidimensionales String Array (hier konkret 5 x 4).
Enthalten sind Kundennr.,Vorname,Nachname,Ort.
Das Array:
Das Sortieren klappt fast.
Für aufsteigend: Nr,Vorname und Ort funktioniert es,aber für den Nachnamen funktioniert es nicht.
Für absteigend funktioniert alles.
Fehlermeldung gibt's keine.
Hier meine Methode:
Zudem möchte ich das Array nach einem Namen durchsuchen und mir dementsprechend den gefundenen Kunden ausgeben lassen (mit allen Daten als Array also Nr,Vorname,Nachname,Ort).
Hier mein Ansatz:
Hier spuckt er mir Array Grenzen überschritten.Okay,aber wieso?
Es geht doch von einmal von 0 bis 4 und 0 bis 3.
data ist doch das oben angegebene array.
Das geht doch auch von 0 bis 4 und von 0 bis 3. :bahnhof:
Ich danke für's Lesen,
Gute Nacht!
ich habe mal wieder ein Problem mit meinem Programm.
Ich habe ein zweidimensionales String Array (hier konkret 5 x 4).
Enthalten sind Kundennr.,Vorname,Nachname,Ort.
Das Array:
Java:
String kundendatensatz[][] = {
{"2014","Wolfdreher","Richard","Berlin"},
{"4510","Pawlosky","Robert","Leipzig"},
{"0121","Kraft","Tanja","Chemnitz"},
{"6346","Zeiss","Karl","Potsdam"},
{"1332","Behringer","Luisa","Magdeburg"}
};
Das Sortieren klappt fast.
Für aufsteigend: Nr,Vorname und Ort funktioniert es,aber für den Nachnamen funktioniert es nicht.
Für absteigend funktioniert alles.
Fehlermeldung gibt's keine.
Hier meine Methode:
Java:
public static void Sortieren(String[][] data, int index, boolean aufsteigend)
{
int pos, posMin, posMax;
String min, max;
String [] merkeZeile = new String[4];
//kleinste Position merken und vertauschen
for (int i = 0; i < data.length; i++)
{
if (aufsteigend)
{
posMin = i;
min = data[i][index];
for (pos = i + 1; pos < data.length; pos++)
{
if (data[pos][index].compareTo(min) < 0)
{
min = data[pos][index];
posMin = pos;
}
//Vertauschen
for (int k = 0; k < merkeZeile.length; k++ )
merkeZeile[k] = data[i][k];
for (int k = 0; k < data[i].length; k++ )
data[i][k] = data[posMin][k];
for (int k = 0; k < data[i].length; k++ )
data[posMin][k] = merkeZeile[k];
}
}
else if (!aufsteigend)
{
posMax = i;
max = data[i][index];
for (pos = i + 1; pos < data.length; pos++)
if (data[pos][index].compareTo(max) > 0)
{
max = data[pos][index];
posMax = pos;
}
for (int k = 0; k < merkeZeile.length; k++ )
merkeZeile[k] = data[i][k];
for (int k = 0; k < kunden[i].length; k++ )
data[i][k] = data[posMax][k];
for (int k = 0; k < kunden[i].length; k++ )
data[posMax][k] = merkeZeile[k];
}
}
Zudem möchte ich das Array nach einem Namen durchsuchen und mir dementsprechend den gefundenen Kunden ausgeben lassen (mit allen Daten als Array also Nr,Vorname,Nachname,Ort).
Hier mein Ansatz:
Java:
public static String[] Suche(String[][] data, String name)
{
String[] found = new String[4];
for (int i = 0; i < data.length; i++)
for (int j = 0; j < data[0].length; j++)
if (data[i][j].equals(name))
found = data[i];
return found;
}
Es geht doch von einmal von 0 bis 4 und 0 bis 3.
data ist doch das oben angegebene array.
Das geht doch auch von 0 bis 4 und von 0 bis 3. :bahnhof:
Ich danke für's Lesen,
Gute Nacht!
Zuletzt bearbeitet: