PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Strings mit "dynamischen" Namen erzeugen



majos
09-05-2005, 14:42
Hi!
Ich habe folgendes Problem:
Ich möchte Attribute aus einer Datei auslesen und
diese dann abspeichern. Und zwar jeweils in einem String,
der genau so heißen soll wie das Attribut. Da ich aber
nicht weiß, welche Attribute es gibt, muss ich den Namen
des Strings sozusagen "dynamisch" erzeugen.
Wie mache ich das?
Vielen Dank schon mal,
Grüße

Boron
09-05-2005, 14:57
Zur Laufzeit Variablen anlegen, deren Namen du nicht kennst (bzw. dieser noch nicht feststeht) geht nicht.
Das ist ja auch Quatsch. Ein Computer interessiert sich nicht für Variablennamen, wenn das Programm läuft. Er arbeitet dann nur noch mit Speicheradressen.

Was du machen kannst, ist bsp. eine Hashtable anlegen. Schau dir dazu in der Java API-Doku die Klasse Hashtable an.

In dieser Klasse kannst du Wertepaare speichern.
Der erste Wert ist ein "Schlüsselbegriff".
Der zweite der tatsächliche Wert.
Du kannst also bspw. "attribut1" -> "Tomatensuppe" speichern.
Mit dem String "attribut1" findest du in der Hashtable den Zugehörigen Wert wieder.

Als Schlüsselbegriffe verwendest du dann einfach deine Attributnamen.

mwanaheri
09-05-2005, 14:58
Da gibt es vor allem zwei Möglichkeiten, die mir einfallen:
wenn sicher ist, das jedes Attribut nur einmal vorkommt, kannst du eine hash-tabelle nehmen, andernfalls kannst du ein kleines Objekt bauen:
public class HeißtIrgendwie{
public String attribut = "";
public String wert = "";
}
und dann eine LinkedList aus solchen Objekten bauen.
Über die kannst du dann iterieren und bei attribut.equals("wasdusuchst") den Wert auslesen.

Die Hash-Lösung ist zweifellos schneller und sinniger, solange jedes Attribut nur genau ein mal vorkommt.

edit: da war jemand schneller ;-)

nul
09-05-2005, 15:03
Wieso so kompliziert? Man kann ja in die Hashtable auch listen reinschreiben.

RogerJFX
25-05-2005, 01:10
das geht schon irgendwie

anda_skoa
25-05-2005, 12:40
das geht schon irgendwie

Könntest du das bitter unterlassen?

Einen zwei Wochen alten Thread ausgraben und dann nicht mal ein bischen Information anhängen ist meiner Meinung nach pures Spamming.

Ciao,
_